diff --git a/.envrc b/.envrc
index 037f88e81..58e2edb39 100644
--- a/.envrc
+++ b/.envrc
@@ -6,5 +6,6 @@ source .venv/bin/activate
export PYTHONPATH="${PYTHONPATH}:${SCRIPT_DIR}/gooddata-afm-client/"
export PYTHONPATH="${PYTHONPATH}:${SCRIPT_DIR}/gooddata-metadata-client/"
export PYTHONPATH="${PYTHONPATH}:${SCRIPT_DIR}/gooddata-scan-client/"
+export PYTHONPATH="${PYTHONPATH}:${SCRIPT_DIR}/gooddata-api-client/"
export PYTHONPATH="${PYTHONPATH}:${SCRIPT_DIR}/gooddata-sdk/"
export PYTHONPATH="${PYTHONPATH}:${SCRIPT_DIR}/gooddata-pandas/"
diff --git a/.flake8 b/.flake8
index 46436c25f..d5b9ab91e 100644
--- a/.flake8
+++ b/.flake8
@@ -1,6 +1,6 @@
# (C) 2021 GoodData Corporation
[flake8]
-exclude = .git,.venv,__pycache__,.tox,build,dist,gooddata-afm-client,gooddata-metadata-client,gooddata-scan-client
+exclude = .git,.venv,__pycache__,.tox,build,dist,gooddata-afm-client,gooddata-metadata-client,gooddata-scan-client,gooddata-api-client
max-line-length = 120
diff --git a/.fossa/prepare_and_populate_pipenv.sh b/.fossa/prepare_and_populate_pipenv.sh
index 2e41e55a7..e37e90287 100755
--- a/.fossa/prepare_and_populate_pipenv.sh
+++ b/.fossa/prepare_and_populate_pipenv.sh
@@ -24,18 +24,22 @@ cd ./gooddata-scan-client
pipenv install --skip-lock -r requirements.txt
cd ..
+cd ./gooddata-api-client
+pipenv install --skip-lock -r requirements.txt
+cd ..
+
cd ./gooddata-sdk
-pipenv install --skip-lock ../gooddata-afm-client/ ../gooddata-metadata-client/ ../gooddata-scan-client/ \
+pipenv install --skip-lock ../gooddata-afm-client/ ../gooddata-metadata-client/ ../gooddata-scan-client/ ../gooddata-api-client/ \
-r requirements.txt
cd ..
cd ./gooddata-fdw
-pipenv install --skip-lock ../gooddata-afm-client/ ../gooddata-metadata-client/ ../gooddata-scan-client/ \
+pipenv install --skip-lock ../gooddata-afm-client/ ../gooddata-metadata-client/ ../gooddata-scan-client/ ../gooddata-api-client/ \
../gooddata-sdk/ -r requirements.txt
cd ..
cd ./gooddata-pandas
-pipenv install --skip-lock ../gooddata-afm-client/ ../gooddata-metadata-client/ ../gooddata-scan-client/ \
+pipenv install --skip-lock ../gooddata-afm-client/ ../gooddata-metadata-client/ ../gooddata-scan-client/ ../gooddata-api-client/ \
../gooddata-sdk/ -r requirements.txt
cd ..
diff --git a/.github/workflows/build-release.yaml b/.github/workflows/build-release.yaml
index 11a9736f5..0edcb095b 100644
--- a/.github/workflows/build-release.yaml
+++ b/.github/workflows/build-release.yaml
@@ -23,6 +23,7 @@ jobs:
- gooddata-afm-client
- gooddata-metadata-client
- gooddata-scan-client
+ - gooddata-api-client
- gooddata-pandas
- gooddata-fdw
- gooddata-sdk
@@ -74,6 +75,7 @@ jobs:
- gooddata-afm-client
- gooddata-metadata-client
- gooddata-scan-client
+ - gooddata-api-client
- gooddata-pandas
- gooddata-fdw
- gooddata-sdk
diff --git a/.openapi-generator/README.md b/.openapi-generator/README.md
index d4db71ad5..f05ef054c 100644
--- a/.openapi-generator/README.md
+++ b/.openapi-generator/README.md
@@ -13,9 +13,7 @@ OpenAPI client generation is orchestrated by script `scripts/generate_client.sh`
if no such exists or updates existing client code.
Use prepared `make` targets from repository root:
-- `make afm-client`
-- `make metadata-client`
-- `make scan-client`
+- `make api-client`
Predefined targets use `http://gooddata-cn-ce:3000` URL to fetch OpenAPI schema and connect generator container to
the `gooddata-python-sdk_default` network. It is prepared to be executed against running `docker-compose.yaml`
diff --git a/.openapi-generator/configs/gooddata-api-client.yaml b/.openapi-generator/configs/gooddata-api-client.yaml
new file mode 100644
index 000000000..51c597e18
--- /dev/null
+++ b/.openapi-generator/configs/gooddata-api-client.yaml
@@ -0,0 +1,13 @@
+# (C) 2022 GoodData Corporation
+generatorName: python
+templateDir: /local/.openapi-generator/custom_templates
+appName: "GoodData api client OpenAPI definition"
+infoName: "GoodData (generated by OpenAPI Generator)"
+infoEmail: "support@gooddata.com"
+projectName: gooddata-api-client
+packageName: gooddata_api_client
+packageVersion: 1.1.0
+library: urllib3
+additionalProperties:
+ licenseInfo: "MIT"
+ licenseFile: "LICENSE.txt"
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index f5cd89557..5d170acce 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -4,7 +4,7 @@
# ignore all generated code + all snapshots; snapshots must not be processed otherwise they stop matching due to
# addition of new lines
-exclude: (gooddata-afm-client|gooddata-metadata-client|gooddata-scan-client|.*\.snapshot\..*|.openapi-generator/custom_templates)
+exclude: (gooddata-afm-client|gooddata-metadata-client|gooddata-scan-client|gooddata-api-client|.*\.snapshot\..*|.openapi-generator/custom_templates)
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
diff --git a/.sonar.settings b/.sonar.settings
index b65ececd6..650f03305 100644
--- a/.sonar.settings
+++ b/.sonar.settings
@@ -1,4 +1,4 @@
# (C) 2021 GoodData Corporation
sonar.sources=gooddata-sdk,gooddata-fdw,gooddata-pandas
-sonar.exclusions=gooddata-afm-client/**/*,gooddata-metadata-client/**/*,gooddata-scan-client/**/*
+sonar.exclusions=gooddata-afm-client/**/*,gooddata-metadata-client/**/*,gooddata-scan-client/**/*,gooddata-api-client/**/*
sonar.python.version=3.7, 3.8, 3.9, 3.10
diff --git a/.sonarcloud.properties b/.sonarcloud.properties
index 4b8fb2562..170c05c54 100644
--- a/.sonarcloud.properties
+++ b/.sonarcloud.properties
@@ -1,4 +1,4 @@
# (C) 2022 GoodData Corporation
sonar.sources=gooddata-sdk,gooddata-fdw,gooddata-pandas
-sonar.exclusions=gooddata-afm-client/**/*,gooddata-metadata-client/**/*,gooddata-scan-client/**/*
+sonar.exclusions=gooddata-afm-client/**/*,gooddata-metadata-client/**/*,gooddata-scan-client/**/*,gooddata-api-client/**/*
sonar.python.version=3.7, 3.8, 3.9, 3.10
diff --git a/LICENSE.txt b/LICENSE.txt
index 2721a5002..bca50d3fd 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -7,4 +7,4 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----------------------
-This repository includes source code for gooddata-sdk, gooddata-fdw, gooddata-pandas, gooddata-scan-client, gooddata-metadata-client, and gooddata-afm-client, each of which is licensed under the MIT license above. For additional licensing information related to open source packages included in each of these projects, please see the OSS LICENSES directory.
+This repository includes source code for gooddata-sdk, gooddata-fdw, gooddata-pandas, gooddata-scan-client, gooddata-metadata-client, gooddata-afm-client, and gooddata-api-client, each of which is licensed under the MIT license above. For additional licensing information related to open source packages included in each of these projects, please see the OSS LICENSES directory.
diff --git a/Makefile b/Makefile
index f796e5969..71e9e2efa 100644
--- a/Makefile
+++ b/Makefile
@@ -38,22 +38,46 @@ format-fix:
isort .
.PHONY: clients
-clients: afm-client metadata-client scan-client
+clients: afm-client metadata-client scan-client api-client
+
+define download_client
+ curl "${URL}/$(1)" | jq --sort-keys > schemas/gooddata-$(1)-client.json
+endef
+
+define generate_client
+ ./scripts/generate_client.sh gooddata-$(1)-client -f "/local/schemas/gooddata-$(1)-client.json"
+endef
+
+define download_generate_client
+ $(call download_client,$(1))
+ $(call generate_client,$(1))
+endef
+
.PHONY: afm-client
afm-client:
- curl "${URL}/afm" | jq --sort-keys > schemas/gooddata-afm-client.json
- ./scripts/generate_client.sh gooddata-afm-client -f "/local/schemas/gooddata-afm-client.json"
+ $(call download_generate_client,afm)
.PHONY: metadata-client
metadata-client:
- curl "${URL}/metadata" | jq --sort-keys > schemas/gooddata-metadata-client.json
- ./scripts/generate_client.sh gooddata-metadata-client -f "/local/schemas/gooddata-metadata-client.json"
+ $(call download_generate_client,metadata)
.PHONY: scan-client
scan-client:
- curl "${URL}/scan" | jq --sort-keys > schemas/gooddata-scan-client.json
- ./scripts/generate_client.sh gooddata-scan-client -f "/local/schemas/gooddata-scan-client.json"
+ $(call download_generate_client,scan)
+
+.PHONY: api-client
+api-client: download
+ rm -f schemas/gooddata-api-client.json
+ cat schemas/gooddata-*.json | jq -S -s 'reduce .[] as $$item ({}; . * $$item) + { tags : ( reduce .[].tags as $$item (null; . + $$item) | unique_by(.name) ) }' > "schemas/gooddata-api-client.json"
+ $(call generate_client,api)
+
+.PHONY: download
+download:
+ $(call download_client,afm)
+ $(call download_client,metadata)
+ $(call download_client,scan)
+ $(call download_client,"export")
.PHONY: mypy
mypy:
diff --git a/README.md b/README.md
index 2ee626ad8..aee2f2d11 100644
--- a/README.md
+++ b/README.md
@@ -9,9 +9,9 @@ This repository contains Python packages useful for integration with [GoodData.C
## Available packages
-### GoodData API Clients
+### GoodData API Client
-API clients are generated directly from the GoodData.CN OpenAPI specifications and allow you to call any API from
+API client is generated directly from the GoodData.CN OpenAPI specifications and allow you to call any API from
Python. Learn more about the clients in their [dedicated readme](./clients_README.md).
### GoodData Python SDK
diff --git a/clients_README.md b/clients_README.md
index 013dde16d..2675c343f 100644
--- a/clients_README.md
+++ b/clients_README.md
@@ -1,6 +1,6 @@
# Generated API Clients
-The generated clients provide Python classes that you can use to call GoodData.CN REST APIs. The clients contain
+The generated client provide Python classes that you can use to call GoodData.CN REST APIs. The client contains
models for API requests and responses and controllers to actually call the APIs.
We recommend using the gooddata_sdk package where possible because:
diff --git a/dev-requirements.txt b/dev-requirements.txt
index 0ee15da0b..38e623882 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -8,6 +8,7 @@ pre-commit~=2.14.0
-r ./gooddata-afm-client/requirements.txt
-r ./gooddata-metadata-client/requirements.txt
-r ./gooddata-scan-client/requirements.txt
+-r ./gooddata-api-client/requirements.txt
-r ./gooddata-sdk/requirements.txt
-r ./gooddata-pandas/requirements.txt
-r ./gooddata-fdw/requirements.txt
diff --git a/docker-compose.yaml b/docker-compose.yaml
index f29ebd565..1622e96cb 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -16,6 +16,7 @@ services:
environment:
LICENSE_AND_PRIVACY_POLICY_ACCEPTED: "YES"
APP_LOGLEVEL: "INFO"
+ GDCN_ENABLE_CSV_EXPORT_API: 1
gooddata-fdw:
build:
diff --git a/gooddata-api-client/.gitignore b/gooddata-api-client/.gitignore
new file mode 100644
index 000000000..43995bd42
--- /dev/null
+++ b/gooddata-api-client/.gitignore
@@ -0,0 +1,66 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+.hypothesis/
+venv/
+.venv/
+.python-version
+.pytest_cache
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+#Ipython Notebook
+.ipynb_checkpoints
diff --git a/gooddata-api-client/.openapi-generator-ignore b/gooddata-api-client/.openapi-generator-ignore
new file mode 100644
index 000000000..6239daebe
--- /dev/null
+++ b/gooddata-api-client/.openapi-generator-ignore
@@ -0,0 +1,6 @@
+# (C) 2022 GoodData Corporation
+.openapi-generator-ignore
+.gitlab-ci.yml
+.travis.yml
+git_push.sh
+test/**
diff --git a/gooddata-api-client/.openapi-generator/FILES b/gooddata-api-client/.openapi-generator/FILES
new file mode 100644
index 000000000..1313d15ac
--- /dev/null
+++ b/gooddata-api-client/.openapi-generator/FILES
@@ -0,0 +1,945 @@
+.gitignore
+README.md
+docs/AFM.md
+docs/AbsoluteDateFilter.md
+docs/AbsoluteDateFilterAbsoluteDateFilter.md
+docs/AbstractMeasureValueFilter.md
+docs/ActionsApi.md
+docs/AfmExecution.md
+docs/AfmExecutionResponse.md
+docs/AfmIdentifier.md
+docs/AfmLocalIdentifier.md
+docs/AfmObjectIdentifier.md
+docs/AfmObjectIdentifierAttribute.md
+docs/AfmObjectIdentifierAttributeIdentifier.md
+docs/AfmObjectIdentifierCore.md
+docs/AfmObjectIdentifierCoreIdentifier.md
+docs/AfmObjectIdentifierDataset.md
+docs/AfmObjectIdentifierDatasetIdentifier.md
+docs/AfmObjectIdentifierIdentifier.md
+docs/AfmObjectIdentifierLabel.md
+docs/AfmObjectIdentifierLabelIdentifier.md
+docs/AfmValidObjectsQuery.md
+docs/AfmValidObjectsResponse.md
+docs/ApiEntitlement.md
+docs/ArithmeticMeasureDefinition.md
+docs/ArithmeticMeasureDefinitionArithmeticMeasure.md
+docs/AssigneeIdentifier.md
+docs/AttributeExecutionResultHeader.md
+docs/AttributeFilter.md
+docs/AttributeFilterElements.md
+docs/AttributeHeaderOut.md
+docs/AttributeHeaderOutAttributeHeader.md
+docs/AttributeItem.md
+docs/AttributeResultHeader.md
+docs/ColumnWarning.md
+docs/ComparisonMeasureValueFilter.md
+docs/ComparisonMeasureValueFilterComparisonMeasureValueFilter.md
+docs/CustomLabel.md
+docs/CustomMetric.md
+docs/CustomOverride.md
+docs/DataColumnLocator.md
+docs/DataColumnLocators.md
+docs/DataSourceParameter.md
+docs/DataSourceSchemata.md
+docs/DataSourceTableIdentifier.md
+docs/DatasetReferenceIdentifier.md
+docs/DateFilter.md
+docs/DeclarativeAnalyticalDashboard.md
+docs/DeclarativeAnalytics.md
+docs/DeclarativeAnalyticsLayer.md
+docs/DeclarativeAttribute.md
+docs/DeclarativeColorPalette.md
+docs/DeclarativeColumn.md
+docs/DeclarativeCspDirective.md
+docs/DeclarativeDashboardPlugin.md
+docs/DeclarativeDataSource.md
+docs/DeclarativeDataSourcePermission.md
+docs/DeclarativeDataSources.md
+docs/DeclarativeDataset.md
+docs/DeclarativeDateDataset.md
+docs/DeclarativeFact.md
+docs/DeclarativeFilterContext.md
+docs/DeclarativeLabel.md
+docs/DeclarativeLdm.md
+docs/DeclarativeMetric.md
+docs/DeclarativeModel.md
+docs/DeclarativeOrganization.md
+docs/DeclarativeOrganizationInfo.md
+docs/DeclarativeOrganizationPermission.md
+docs/DeclarativePdm.md
+docs/DeclarativeReference.md
+docs/DeclarativeSetting.md
+docs/DeclarativeSingleWorkspacePermission.md
+docs/DeclarativeTable.md
+docs/DeclarativeTables.md
+docs/DeclarativeTheme.md
+docs/DeclarativeUser.md
+docs/DeclarativeUserGroup.md
+docs/DeclarativeUserGroups.md
+docs/DeclarativeUsers.md
+docs/DeclarativeUsersUserGroups.md
+docs/DeclarativeVisualizationObject.md
+docs/DeclarativeWorkspace.md
+docs/DeclarativeWorkspaceDataFilter.md
+docs/DeclarativeWorkspaceDataFilterSetting.md
+docs/DeclarativeWorkspaceDataFilters.md
+docs/DeclarativeWorkspaceHierarchyPermission.md
+docs/DeclarativeWorkspaceModel.md
+docs/DeclarativeWorkspacePermissions.md
+docs/DeclarativeWorkspaces.md
+docs/DependentEntitiesGraph.md
+docs/DependentEntitiesNode.md
+docs/DependentEntitiesRequest.md
+docs/DependentEntitiesResponse.md
+docs/Dimension.md
+docs/DimensionHeader.md
+docs/Element.md
+docs/ElementsRequest.md
+docs/ElementsResponse.md
+docs/EntitiesApi.md
+docs/EntitlementsRequest.md
+docs/EntityIdentifier.md
+docs/ExecutionLinks.md
+docs/ExecutionResponse.md
+docs/ExecutionResult.md
+docs/ExecutionResultGrandTotal.md
+docs/ExecutionResultHeader.md
+docs/ExecutionResultPaging.md
+docs/ExecutionSettings.md
+docs/FilterBy.md
+docs/FilterDefinition.md
+docs/FilterDefinitionForSimpleMeasure.md
+docs/GenerateLdmRequest.md
+docs/GrainIdentifier.md
+docs/GranularitiesFormatting.md
+docs/HeaderGroup.md
+docs/InlineFilterDefinition.md
+docs/InlineFilterDefinitionInline.md
+docs/InlineMeasureDefinition.md
+docs/InlineMeasureDefinitionInline.md
+docs/JsonApiAnalyticalDashboardIn.md
+docs/JsonApiAnalyticalDashboardInAttributes.md
+docs/JsonApiAnalyticalDashboardInDocument.md
+docs/JsonApiAnalyticalDashboardLinkage.md
+docs/JsonApiAnalyticalDashboardOut.md
+docs/JsonApiAnalyticalDashboardOutDocument.md
+docs/JsonApiAnalyticalDashboardOutIncludes.md
+docs/JsonApiAnalyticalDashboardOutList.md
+docs/JsonApiAnalyticalDashboardOutRelationships.md
+docs/JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards.md
+docs/JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins.md
+docs/JsonApiAnalyticalDashboardOutRelationshipsDatasets.md
+docs/JsonApiAnalyticalDashboardOutRelationshipsFilterContexts.md
+docs/JsonApiAnalyticalDashboardOutRelationshipsLabels.md
+docs/JsonApiAnalyticalDashboardOutRelationshipsMetrics.md
+docs/JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects.md
+docs/JsonApiAnalyticalDashboardOutWithLinks.md
+docs/JsonApiAnalyticalDashboardPatch.md
+docs/JsonApiAnalyticalDashboardPatchDocument.md
+docs/JsonApiAnalyticalDashboardToManyLinkage.md
+docs/JsonApiApiTokenIn.md
+docs/JsonApiApiTokenInDocument.md
+docs/JsonApiApiTokenOut.md
+docs/JsonApiApiTokenOutAttributes.md
+docs/JsonApiApiTokenOutDocument.md
+docs/JsonApiApiTokenOutList.md
+docs/JsonApiApiTokenOutWithLinks.md
+docs/JsonApiAttributeLinkage.md
+docs/JsonApiAttributeOut.md
+docs/JsonApiAttributeOutAttributes.md
+docs/JsonApiAttributeOutDocument.md
+docs/JsonApiAttributeOutIncludes.md
+docs/JsonApiAttributeOutList.md
+docs/JsonApiAttributeOutRelationships.md
+docs/JsonApiAttributeOutRelationshipsDataset.md
+docs/JsonApiAttributeOutRelationshipsDefaultView.md
+docs/JsonApiAttributeOutWithLinks.md
+docs/JsonApiAttributeToManyLinkage.md
+docs/JsonApiAttributeToOneLinkage.md
+docs/JsonApiColorPaletteIn.md
+docs/JsonApiColorPaletteInAttributes.md
+docs/JsonApiColorPaletteInDocument.md
+docs/JsonApiColorPaletteOut.md
+docs/JsonApiColorPaletteOutDocument.md
+docs/JsonApiColorPaletteOutList.md
+docs/JsonApiColorPaletteOutWithLinks.md
+docs/JsonApiColorPalettePatch.md
+docs/JsonApiColorPalettePatchAttributes.md
+docs/JsonApiColorPalettePatchDocument.md
+docs/JsonApiCookieSecurityConfigurationIn.md
+docs/JsonApiCookieSecurityConfigurationInAttributes.md
+docs/JsonApiCookieSecurityConfigurationInDocument.md
+docs/JsonApiCookieSecurityConfigurationOut.md
+docs/JsonApiCookieSecurityConfigurationOutDocument.md
+docs/JsonApiCookieSecurityConfigurationPatch.md
+docs/JsonApiCookieSecurityConfigurationPatchDocument.md
+docs/JsonApiCspDirectiveIn.md
+docs/JsonApiCspDirectiveInAttributes.md
+docs/JsonApiCspDirectiveInDocument.md
+docs/JsonApiCspDirectiveOut.md
+docs/JsonApiCspDirectiveOutDocument.md
+docs/JsonApiCspDirectiveOutList.md
+docs/JsonApiCspDirectiveOutWithLinks.md
+docs/JsonApiCspDirectivePatch.md
+docs/JsonApiCspDirectivePatchAttributes.md
+docs/JsonApiCspDirectivePatchDocument.md
+docs/JsonApiDashboardPluginIn.md
+docs/JsonApiDashboardPluginInAttributes.md
+docs/JsonApiDashboardPluginInDocument.md
+docs/JsonApiDashboardPluginLinkage.md
+docs/JsonApiDashboardPluginOut.md
+docs/JsonApiDashboardPluginOutDocument.md
+docs/JsonApiDashboardPluginOutList.md
+docs/JsonApiDashboardPluginOutWithLinks.md
+docs/JsonApiDashboardPluginPatch.md
+docs/JsonApiDashboardPluginPatchDocument.md
+docs/JsonApiDashboardPluginToManyLinkage.md
+docs/JsonApiDataSourceIdentifierOut.md
+docs/JsonApiDataSourceIdentifierOutAttributes.md
+docs/JsonApiDataSourceIdentifierOutDocument.md
+docs/JsonApiDataSourceIdentifierOutList.md
+docs/JsonApiDataSourceIdentifierOutMeta.md
+docs/JsonApiDataSourceIdentifierOutWithLinks.md
+docs/JsonApiDataSourceIn.md
+docs/JsonApiDataSourceInAttributes.md
+docs/JsonApiDataSourceInAttributesParametersInner.md
+docs/JsonApiDataSourceInDocument.md
+docs/JsonApiDataSourceOut.md
+docs/JsonApiDataSourceOutAttributes.md
+docs/JsonApiDataSourceOutDocument.md
+docs/JsonApiDataSourceOutList.md
+docs/JsonApiDataSourceOutWithLinks.md
+docs/JsonApiDataSourcePatch.md
+docs/JsonApiDataSourcePatchAttributes.md
+docs/JsonApiDataSourcePatchDocument.md
+docs/JsonApiDataSourceTableOut.md
+docs/JsonApiDataSourceTableOutAttributes.md
+docs/JsonApiDataSourceTableOutAttributesColumnsInner.md
+docs/JsonApiDataSourceTableOutDocument.md
+docs/JsonApiDataSourceTableOutList.md
+docs/JsonApiDataSourceTableOutWithLinks.md
+docs/JsonApiDatasetLinkage.md
+docs/JsonApiDatasetOut.md
+docs/JsonApiDatasetOutAttributes.md
+docs/JsonApiDatasetOutAttributesGrainInner.md
+docs/JsonApiDatasetOutAttributesReferencePropertiesInner.md
+docs/JsonApiDatasetOutDocument.md
+docs/JsonApiDatasetOutIncludes.md
+docs/JsonApiDatasetOutList.md
+docs/JsonApiDatasetOutRelationships.md
+docs/JsonApiDatasetOutRelationshipsAttributes.md
+docs/JsonApiDatasetOutRelationshipsFacts.md
+docs/JsonApiDatasetOutWithLinks.md
+docs/JsonApiDatasetToManyLinkage.md
+docs/JsonApiDatasetToOneLinkage.md
+docs/JsonApiEntitlementOut.md
+docs/JsonApiEntitlementOutAttributes.md
+docs/JsonApiEntitlementOutDocument.md
+docs/JsonApiEntitlementOutList.md
+docs/JsonApiEntitlementOutWithLinks.md
+docs/JsonApiFactLinkage.md
+docs/JsonApiFactOut.md
+docs/JsonApiFactOutAttributes.md
+docs/JsonApiFactOutDocument.md
+docs/JsonApiFactOutList.md
+docs/JsonApiFactOutRelationships.md
+docs/JsonApiFactOutWithLinks.md
+docs/JsonApiFactToManyLinkage.md
+docs/JsonApiFilterContextIn.md
+docs/JsonApiFilterContextInDocument.md
+docs/JsonApiFilterContextLinkage.md
+docs/JsonApiFilterContextOut.md
+docs/JsonApiFilterContextOutDocument.md
+docs/JsonApiFilterContextOutIncludes.md
+docs/JsonApiFilterContextOutList.md
+docs/JsonApiFilterContextOutRelationships.md
+docs/JsonApiFilterContextOutWithLinks.md
+docs/JsonApiFilterContextPatch.md
+docs/JsonApiFilterContextPatchDocument.md
+docs/JsonApiFilterContextToManyLinkage.md
+docs/JsonApiLabelLinkage.md
+docs/JsonApiLabelOut.md
+docs/JsonApiLabelOutAttributes.md
+docs/JsonApiLabelOutDocument.md
+docs/JsonApiLabelOutList.md
+docs/JsonApiLabelOutRelationships.md
+docs/JsonApiLabelOutRelationshipsAttribute.md
+docs/JsonApiLabelOutWithLinks.md
+docs/JsonApiLabelToManyLinkage.md
+docs/JsonApiLabelToOneLinkage.md
+docs/JsonApiMetricIn.md
+docs/JsonApiMetricInAttributes.md
+docs/JsonApiMetricInAttributesContent.md
+docs/JsonApiMetricInDocument.md
+docs/JsonApiMetricLinkage.md
+docs/JsonApiMetricOut.md
+docs/JsonApiMetricOutDocument.md
+docs/JsonApiMetricOutIncludes.md
+docs/JsonApiMetricOutList.md
+docs/JsonApiMetricOutRelationships.md
+docs/JsonApiMetricOutWithLinks.md
+docs/JsonApiMetricPatch.md
+docs/JsonApiMetricPatchAttributes.md
+docs/JsonApiMetricPatchDocument.md
+docs/JsonApiMetricToManyLinkage.md
+docs/JsonApiOrganizationIn.md
+docs/JsonApiOrganizationInAttributes.md
+docs/JsonApiOrganizationInDocument.md
+docs/JsonApiOrganizationOut.md
+docs/JsonApiOrganizationOutAttributes.md
+docs/JsonApiOrganizationOutDocument.md
+docs/JsonApiOrganizationOutIncludes.md
+docs/JsonApiOrganizationOutMeta.md
+docs/JsonApiOrganizationOutRelationships.md
+docs/JsonApiOrganizationOutRelationshipsBootstrapUser.md
+docs/JsonApiOrganizationOutRelationshipsBootstrapUserGroup.md
+docs/JsonApiOrganizationPatch.md
+docs/JsonApiOrganizationPatchDocument.md
+docs/JsonApiOrganizationSettingIn.md
+docs/JsonApiOrganizationSettingInAttributes.md
+docs/JsonApiOrganizationSettingInDocument.md
+docs/JsonApiOrganizationSettingOut.md
+docs/JsonApiOrganizationSettingOutDocument.md
+docs/JsonApiOrganizationSettingOutList.md
+docs/JsonApiOrganizationSettingOutWithLinks.md
+docs/JsonApiOrganizationSettingPatch.md
+docs/JsonApiOrganizationSettingPatchDocument.md
+docs/JsonApiThemeIn.md
+docs/JsonApiThemeInDocument.md
+docs/JsonApiThemeOut.md
+docs/JsonApiThemeOutDocument.md
+docs/JsonApiThemeOutList.md
+docs/JsonApiThemeOutWithLinks.md
+docs/JsonApiThemePatch.md
+docs/JsonApiThemePatchDocument.md
+docs/JsonApiUserGroupIn.md
+docs/JsonApiUserGroupInDocument.md
+docs/JsonApiUserGroupInRelationships.md
+docs/JsonApiUserGroupInRelationshipsParents.md
+docs/JsonApiUserGroupLinkage.md
+docs/JsonApiUserGroupOut.md
+docs/JsonApiUserGroupOutDocument.md
+docs/JsonApiUserGroupOutList.md
+docs/JsonApiUserGroupOutWithLinks.md
+docs/JsonApiUserGroupPatch.md
+docs/JsonApiUserGroupPatchDocument.md
+docs/JsonApiUserGroupToManyLinkage.md
+docs/JsonApiUserGroupToOneLinkage.md
+docs/JsonApiUserIn.md
+docs/JsonApiUserInAttributes.md
+docs/JsonApiUserInDocument.md
+docs/JsonApiUserInRelationships.md
+docs/JsonApiUserLinkage.md
+docs/JsonApiUserOut.md
+docs/JsonApiUserOutDocument.md
+docs/JsonApiUserOutList.md
+docs/JsonApiUserOutWithLinks.md
+docs/JsonApiUserPatch.md
+docs/JsonApiUserPatchDocument.md
+docs/JsonApiUserSettingIn.md
+docs/JsonApiUserSettingInDocument.md
+docs/JsonApiUserSettingOut.md
+docs/JsonApiUserSettingOutDocument.md
+docs/JsonApiUserSettingOutList.md
+docs/JsonApiUserSettingOutWithLinks.md
+docs/JsonApiUserToOneLinkage.md
+docs/JsonApiVisualizationObjectIn.md
+docs/JsonApiVisualizationObjectInDocument.md
+docs/JsonApiVisualizationObjectLinkage.md
+docs/JsonApiVisualizationObjectOut.md
+docs/JsonApiVisualizationObjectOutDocument.md
+docs/JsonApiVisualizationObjectOutList.md
+docs/JsonApiVisualizationObjectOutWithLinks.md
+docs/JsonApiVisualizationObjectPatch.md
+docs/JsonApiVisualizationObjectPatchDocument.md
+docs/JsonApiVisualizationObjectToManyLinkage.md
+docs/JsonApiWorkspaceDataFilterIn.md
+docs/JsonApiWorkspaceDataFilterInAttributes.md
+docs/JsonApiWorkspaceDataFilterInDocument.md
+docs/JsonApiWorkspaceDataFilterInRelationships.md
+docs/JsonApiWorkspaceDataFilterInRelationshipsFilterSettings.md
+docs/JsonApiWorkspaceDataFilterLinkage.md
+docs/JsonApiWorkspaceDataFilterOut.md
+docs/JsonApiWorkspaceDataFilterOutDocument.md
+docs/JsonApiWorkspaceDataFilterOutList.md
+docs/JsonApiWorkspaceDataFilterOutWithLinks.md
+docs/JsonApiWorkspaceDataFilterPatch.md
+docs/JsonApiWorkspaceDataFilterPatchDocument.md
+docs/JsonApiWorkspaceDataFilterSettingLinkage.md
+docs/JsonApiWorkspaceDataFilterSettingOut.md
+docs/JsonApiWorkspaceDataFilterSettingOutAttributes.md
+docs/JsonApiWorkspaceDataFilterSettingOutDocument.md
+docs/JsonApiWorkspaceDataFilterSettingOutList.md
+docs/JsonApiWorkspaceDataFilterSettingOutRelationships.md
+docs/JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter.md
+docs/JsonApiWorkspaceDataFilterSettingOutWithLinks.md
+docs/JsonApiWorkspaceDataFilterSettingToManyLinkage.md
+docs/JsonApiWorkspaceDataFilterToOneLinkage.md
+docs/JsonApiWorkspaceIn.md
+docs/JsonApiWorkspaceInAttributes.md
+docs/JsonApiWorkspaceInDocument.md
+docs/JsonApiWorkspaceInRelationships.md
+docs/JsonApiWorkspaceInRelationshipsParent.md
+docs/JsonApiWorkspaceLinkage.md
+docs/JsonApiWorkspaceOut.md
+docs/JsonApiWorkspaceOutDocument.md
+docs/JsonApiWorkspaceOutList.md
+docs/JsonApiWorkspaceOutMeta.md
+docs/JsonApiWorkspaceOutMetaConfig.md
+docs/JsonApiWorkspaceOutWithLinks.md
+docs/JsonApiWorkspacePatch.md
+docs/JsonApiWorkspacePatchDocument.md
+docs/JsonApiWorkspaceSettingIn.md
+docs/JsonApiWorkspaceSettingInDocument.md
+docs/JsonApiWorkspaceSettingOut.md
+docs/JsonApiWorkspaceSettingOutDocument.md
+docs/JsonApiWorkspaceSettingOutList.md
+docs/JsonApiWorkspaceSettingOutWithLinks.md
+docs/JsonApiWorkspaceSettingPatch.md
+docs/JsonApiWorkspaceSettingPatchDocument.md
+docs/JsonApiWorkspaceToOneLinkage.md
+docs/LabelIdentifier.md
+docs/LayoutApi.md
+docs/ListLinks.md
+docs/ListLinksAllOf.md
+docs/MeasureDefinition.md
+docs/MeasureExecutionResultHeader.md
+docs/MeasureGroupHeaders.md
+docs/MeasureHeaderOut.md
+docs/MeasureItem.md
+docs/MeasureResultHeader.md
+docs/MeasureValueFilter.md
+docs/NegativeAttributeFilter.md
+docs/NegativeAttributeFilterNegativeAttributeFilter.md
+docs/ObjectLinks.md
+docs/ObjectLinksContainer.md
+docs/Paging.md
+docs/Parameter.md
+docs/PlatformUsage.md
+docs/PlatformUsageRequest.md
+docs/PopDataset.md
+docs/PopDatasetMeasureDefinition.md
+docs/PopDatasetMeasureDefinitionPreviousPeriodMeasure.md
+docs/PopDate.md
+docs/PopDateMeasureDefinition.md
+docs/PopDateMeasureDefinitionOverPeriodMeasure.md
+docs/PopMeasureDefinition.md
+docs/PositiveAttributeFilter.md
+docs/PositiveAttributeFilterPositiveAttributeFilter.md
+docs/RangeMeasureValueFilter.md
+docs/RangeMeasureValueFilterRangeMeasureValueFilter.md
+docs/RankingFilter.md
+docs/RankingFilterRankingFilter.md
+docs/ReferenceIdentifier.md
+docs/RelativeDateFilter.md
+docs/RelativeDateFilterRelativeDateFilter.md
+docs/ResolveSettingsRequest.md
+docs/RestApiIdentifier.md
+docs/ResultCacheMetadata.md
+docs/ResultDimension.md
+docs/ResultDimensionHeader.md
+docs/ResultSpec.md
+docs/ScanRequest.md
+docs/ScanResultPdm.md
+docs/Settings.md
+docs/SimpleMeasureDefinition.md
+docs/SimpleMeasureDefinitionMeasure.md
+docs/SortKey.md
+docs/SortKeyAttribute.md
+docs/SortKeyAttributeAttribute.md
+docs/SortKeyTotal.md
+docs/SortKeyTotalTotal.md
+docs/SortKeyValue.md
+docs/SortKeyValueValue.md
+docs/TableWarning.md
+docs/TabularExportRequest.md
+docs/TabularExportResult.md
+docs/TestDefinitionRequest.md
+docs/TestRequest.md
+docs/TestResponse.md
+docs/Total.md
+docs/TotalDimension.md
+docs/TotalExecutionResultHeader.md
+docs/TotalResultHeader.md
+docs/UserGroupIdentifier.md
+docs/WorkspaceIdentifier.md
+gooddata_api_client/__init__.py
+gooddata_api_client/api/__init__.py
+gooddata_api_client/api/actions_api.py
+gooddata_api_client/api/entities_api.py
+gooddata_api_client/api/layout_api.py
+gooddata_api_client/api_client.py
+gooddata_api_client/apis/__init__.py
+gooddata_api_client/configuration.py
+gooddata_api_client/exceptions.py
+gooddata_api_client/model/__init__.py
+gooddata_api_client/model/absolute_date_filter.py
+gooddata_api_client/model/absolute_date_filter_absolute_date_filter.py
+gooddata_api_client/model/abstract_measure_value_filter.py
+gooddata_api_client/model/afm.py
+gooddata_api_client/model/afm_execution.py
+gooddata_api_client/model/afm_execution_response.py
+gooddata_api_client/model/afm_identifier.py
+gooddata_api_client/model/afm_local_identifier.py
+gooddata_api_client/model/afm_object_identifier.py
+gooddata_api_client/model/afm_object_identifier_attribute.py
+gooddata_api_client/model/afm_object_identifier_attribute_identifier.py
+gooddata_api_client/model/afm_object_identifier_core.py
+gooddata_api_client/model/afm_object_identifier_core_identifier.py
+gooddata_api_client/model/afm_object_identifier_dataset.py
+gooddata_api_client/model/afm_object_identifier_dataset_identifier.py
+gooddata_api_client/model/afm_object_identifier_identifier.py
+gooddata_api_client/model/afm_object_identifier_label.py
+gooddata_api_client/model/afm_object_identifier_label_identifier.py
+gooddata_api_client/model/afm_valid_objects_query.py
+gooddata_api_client/model/afm_valid_objects_response.py
+gooddata_api_client/model/api_entitlement.py
+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/attribute_execution_result_header.py
+gooddata_api_client/model/attribute_filter.py
+gooddata_api_client/model/attribute_filter_elements.py
+gooddata_api_client/model/attribute_header_out.py
+gooddata_api_client/model/attribute_header_out_attribute_header.py
+gooddata_api_client/model/attribute_item.py
+gooddata_api_client/model/attribute_result_header.py
+gooddata_api_client/model/column_warning.py
+gooddata_api_client/model/comparison_measure_value_filter.py
+gooddata_api_client/model/comparison_measure_value_filter_comparison_measure_value_filter.py
+gooddata_api_client/model/custom_label.py
+gooddata_api_client/model/custom_metric.py
+gooddata_api_client/model/custom_override.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
+gooddata_api_client/model/data_source_schemata.py
+gooddata_api_client/model/data_source_table_identifier.py
+gooddata_api_client/model/dataset_reference_identifier.py
+gooddata_api_client/model/date_filter.py
+gooddata_api_client/model/declarative_analytical_dashboard.py
+gooddata_api_client/model/declarative_analytics.py
+gooddata_api_client/model/declarative_analytics_layer.py
+gooddata_api_client/model/declarative_attribute.py
+gooddata_api_client/model/declarative_color_palette.py
+gooddata_api_client/model/declarative_column.py
+gooddata_api_client/model/declarative_csp_directive.py
+gooddata_api_client/model/declarative_dashboard_plugin.py
+gooddata_api_client/model/declarative_data_source.py
+gooddata_api_client/model/declarative_data_source_permission.py
+gooddata_api_client/model/declarative_data_sources.py
+gooddata_api_client/model/declarative_dataset.py
+gooddata_api_client/model/declarative_date_dataset.py
+gooddata_api_client/model/declarative_fact.py
+gooddata_api_client/model/declarative_filter_context.py
+gooddata_api_client/model/declarative_label.py
+gooddata_api_client/model/declarative_ldm.py
+gooddata_api_client/model/declarative_metric.py
+gooddata_api_client/model/declarative_model.py
+gooddata_api_client/model/declarative_organization.py
+gooddata_api_client/model/declarative_organization_info.py
+gooddata_api_client/model/declarative_organization_permission.py
+gooddata_api_client/model/declarative_pdm.py
+gooddata_api_client/model/declarative_reference.py
+gooddata_api_client/model/declarative_setting.py
+gooddata_api_client/model/declarative_single_workspace_permission.py
+gooddata_api_client/model/declarative_table.py
+gooddata_api_client/model/declarative_tables.py
+gooddata_api_client/model/declarative_theme.py
+gooddata_api_client/model/declarative_user.py
+gooddata_api_client/model/declarative_user_group.py
+gooddata_api_client/model/declarative_user_groups.py
+gooddata_api_client/model/declarative_users.py
+gooddata_api_client/model/declarative_users_user_groups.py
+gooddata_api_client/model/declarative_visualization_object.py
+gooddata_api_client/model/declarative_workspace.py
+gooddata_api_client/model/declarative_workspace_data_filter.py
+gooddata_api_client/model/declarative_workspace_data_filter_setting.py
+gooddata_api_client/model/declarative_workspace_data_filters.py
+gooddata_api_client/model/declarative_workspace_hierarchy_permission.py
+gooddata_api_client/model/declarative_workspace_model.py
+gooddata_api_client/model/declarative_workspace_permissions.py
+gooddata_api_client/model/declarative_workspaces.py
+gooddata_api_client/model/dependent_entities_graph.py
+gooddata_api_client/model/dependent_entities_node.py
+gooddata_api_client/model/dependent_entities_request.py
+gooddata_api_client/model/dependent_entities_response.py
+gooddata_api_client/model/dimension.py
+gooddata_api_client/model/dimension_header.py
+gooddata_api_client/model/element.py
+gooddata_api_client/model/elements_request.py
+gooddata_api_client/model/elements_response.py
+gooddata_api_client/model/entitlements_request.py
+gooddata_api_client/model/entity_identifier.py
+gooddata_api_client/model/execution_links.py
+gooddata_api_client/model/execution_response.py
+gooddata_api_client/model/execution_result.py
+gooddata_api_client/model/execution_result_grand_total.py
+gooddata_api_client/model/execution_result_header.py
+gooddata_api_client/model/execution_result_paging.py
+gooddata_api_client/model/execution_settings.py
+gooddata_api_client/model/filter_by.py
+gooddata_api_client/model/filter_definition.py
+gooddata_api_client/model/filter_definition_for_simple_measure.py
+gooddata_api_client/model/generate_ldm_request.py
+gooddata_api_client/model/grain_identifier.py
+gooddata_api_client/model/granularities_formatting.py
+gooddata_api_client/model/header_group.py
+gooddata_api_client/model/inline_filter_definition.py
+gooddata_api_client/model/inline_filter_definition_inline.py
+gooddata_api_client/model/inline_measure_definition.py
+gooddata_api_client/model/inline_measure_definition_inline.py
+gooddata_api_client/model/json_api_analytical_dashboard_in.py
+gooddata_api_client/model/json_api_analytical_dashboard_in_attributes.py
+gooddata_api_client/model/json_api_analytical_dashboard_in_document.py
+gooddata_api_client/model/json_api_analytical_dashboard_linkage.py
+gooddata_api_client/model/json_api_analytical_dashboard_out.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_document.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_includes.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_list.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_relationships.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_analytical_dashboards.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_dashboard_plugins.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_datasets.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_filter_contexts.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_labels.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_metrics.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_visualization_objects.py
+gooddata_api_client/model/json_api_analytical_dashboard_out_with_links.py
+gooddata_api_client/model/json_api_analytical_dashboard_patch.py
+gooddata_api_client/model/json_api_analytical_dashboard_patch_document.py
+gooddata_api_client/model/json_api_analytical_dashboard_to_many_linkage.py
+gooddata_api_client/model/json_api_api_token_in.py
+gooddata_api_client/model/json_api_api_token_in_document.py
+gooddata_api_client/model/json_api_api_token_out.py
+gooddata_api_client/model/json_api_api_token_out_attributes.py
+gooddata_api_client/model/json_api_api_token_out_document.py
+gooddata_api_client/model/json_api_api_token_out_list.py
+gooddata_api_client/model/json_api_api_token_out_with_links.py
+gooddata_api_client/model/json_api_attribute_linkage.py
+gooddata_api_client/model/json_api_attribute_out.py
+gooddata_api_client/model/json_api_attribute_out_attributes.py
+gooddata_api_client/model/json_api_attribute_out_document.py
+gooddata_api_client/model/json_api_attribute_out_includes.py
+gooddata_api_client/model/json_api_attribute_out_list.py
+gooddata_api_client/model/json_api_attribute_out_relationships.py
+gooddata_api_client/model/json_api_attribute_out_relationships_dataset.py
+gooddata_api_client/model/json_api_attribute_out_relationships_default_view.py
+gooddata_api_client/model/json_api_attribute_out_with_links.py
+gooddata_api_client/model/json_api_attribute_to_many_linkage.py
+gooddata_api_client/model/json_api_attribute_to_one_linkage.py
+gooddata_api_client/model/json_api_color_palette_in.py
+gooddata_api_client/model/json_api_color_palette_in_attributes.py
+gooddata_api_client/model/json_api_color_palette_in_document.py
+gooddata_api_client/model/json_api_color_palette_out.py
+gooddata_api_client/model/json_api_color_palette_out_document.py
+gooddata_api_client/model/json_api_color_palette_out_list.py
+gooddata_api_client/model/json_api_color_palette_out_with_links.py
+gooddata_api_client/model/json_api_color_palette_patch.py
+gooddata_api_client/model/json_api_color_palette_patch_attributes.py
+gooddata_api_client/model/json_api_color_palette_patch_document.py
+gooddata_api_client/model/json_api_cookie_security_configuration_in.py
+gooddata_api_client/model/json_api_cookie_security_configuration_in_attributes.py
+gooddata_api_client/model/json_api_cookie_security_configuration_in_document.py
+gooddata_api_client/model/json_api_cookie_security_configuration_out.py
+gooddata_api_client/model/json_api_cookie_security_configuration_out_document.py
+gooddata_api_client/model/json_api_cookie_security_configuration_patch.py
+gooddata_api_client/model/json_api_cookie_security_configuration_patch_document.py
+gooddata_api_client/model/json_api_csp_directive_in.py
+gooddata_api_client/model/json_api_csp_directive_in_attributes.py
+gooddata_api_client/model/json_api_csp_directive_in_document.py
+gooddata_api_client/model/json_api_csp_directive_out.py
+gooddata_api_client/model/json_api_csp_directive_out_document.py
+gooddata_api_client/model/json_api_csp_directive_out_list.py
+gooddata_api_client/model/json_api_csp_directive_out_with_links.py
+gooddata_api_client/model/json_api_csp_directive_patch.py
+gooddata_api_client/model/json_api_csp_directive_patch_attributes.py
+gooddata_api_client/model/json_api_csp_directive_patch_document.py
+gooddata_api_client/model/json_api_dashboard_plugin_in.py
+gooddata_api_client/model/json_api_dashboard_plugin_in_attributes.py
+gooddata_api_client/model/json_api_dashboard_plugin_in_document.py
+gooddata_api_client/model/json_api_dashboard_plugin_linkage.py
+gooddata_api_client/model/json_api_dashboard_plugin_out.py
+gooddata_api_client/model/json_api_dashboard_plugin_out_document.py
+gooddata_api_client/model/json_api_dashboard_plugin_out_list.py
+gooddata_api_client/model/json_api_dashboard_plugin_out_with_links.py
+gooddata_api_client/model/json_api_dashboard_plugin_patch.py
+gooddata_api_client/model/json_api_dashboard_plugin_patch_document.py
+gooddata_api_client/model/json_api_dashboard_plugin_to_many_linkage.py
+gooddata_api_client/model/json_api_data_source_identifier_out.py
+gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py
+gooddata_api_client/model/json_api_data_source_identifier_out_document.py
+gooddata_api_client/model/json_api_data_source_identifier_out_list.py
+gooddata_api_client/model/json_api_data_source_identifier_out_meta.py
+gooddata_api_client/model/json_api_data_source_identifier_out_with_links.py
+gooddata_api_client/model/json_api_data_source_in.py
+gooddata_api_client/model/json_api_data_source_in_attributes.py
+gooddata_api_client/model/json_api_data_source_in_attributes_parameters_inner.py
+gooddata_api_client/model/json_api_data_source_in_document.py
+gooddata_api_client/model/json_api_data_source_out.py
+gooddata_api_client/model/json_api_data_source_out_attributes.py
+gooddata_api_client/model/json_api_data_source_out_document.py
+gooddata_api_client/model/json_api_data_source_out_list.py
+gooddata_api_client/model/json_api_data_source_out_with_links.py
+gooddata_api_client/model/json_api_data_source_patch.py
+gooddata_api_client/model/json_api_data_source_patch_attributes.py
+gooddata_api_client/model/json_api_data_source_patch_document.py
+gooddata_api_client/model/json_api_data_source_table_out.py
+gooddata_api_client/model/json_api_data_source_table_out_attributes.py
+gooddata_api_client/model/json_api_data_source_table_out_attributes_columns_inner.py
+gooddata_api_client/model/json_api_data_source_table_out_document.py
+gooddata_api_client/model/json_api_data_source_table_out_list.py
+gooddata_api_client/model/json_api_data_source_table_out_with_links.py
+gooddata_api_client/model/json_api_dataset_linkage.py
+gooddata_api_client/model/json_api_dataset_out.py
+gooddata_api_client/model/json_api_dataset_out_attributes.py
+gooddata_api_client/model/json_api_dataset_out_attributes_grain_inner.py
+gooddata_api_client/model/json_api_dataset_out_attributes_reference_properties_inner.py
+gooddata_api_client/model/json_api_dataset_out_document.py
+gooddata_api_client/model/json_api_dataset_out_includes.py
+gooddata_api_client/model/json_api_dataset_out_list.py
+gooddata_api_client/model/json_api_dataset_out_relationships.py
+gooddata_api_client/model/json_api_dataset_out_relationships_attributes.py
+gooddata_api_client/model/json_api_dataset_out_relationships_facts.py
+gooddata_api_client/model/json_api_dataset_out_with_links.py
+gooddata_api_client/model/json_api_dataset_to_many_linkage.py
+gooddata_api_client/model/json_api_dataset_to_one_linkage.py
+gooddata_api_client/model/json_api_entitlement_out.py
+gooddata_api_client/model/json_api_entitlement_out_attributes.py
+gooddata_api_client/model/json_api_entitlement_out_document.py
+gooddata_api_client/model/json_api_entitlement_out_list.py
+gooddata_api_client/model/json_api_entitlement_out_with_links.py
+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_list.py
+gooddata_api_client/model/json_api_fact_out_relationships.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_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
+gooddata_api_client/model/json_api_filter_context_out.py
+gooddata_api_client/model/json_api_filter_context_out_document.py
+gooddata_api_client/model/json_api_filter_context_out_includes.py
+gooddata_api_client/model/json_api_filter_context_out_list.py
+gooddata_api_client/model/json_api_filter_context_out_relationships.py
+gooddata_api_client/model/json_api_filter_context_out_with_links.py
+gooddata_api_client/model/json_api_filter_context_patch.py
+gooddata_api_client/model/json_api_filter_context_patch_document.py
+gooddata_api_client/model/json_api_filter_context_to_many_linkage.py
+gooddata_api_client/model/json_api_label_linkage.py
+gooddata_api_client/model/json_api_label_out.py
+gooddata_api_client/model/json_api_label_out_attributes.py
+gooddata_api_client/model/json_api_label_out_document.py
+gooddata_api_client/model/json_api_label_out_list.py
+gooddata_api_client/model/json_api_label_out_relationships.py
+gooddata_api_client/model/json_api_label_out_relationships_attribute.py
+gooddata_api_client/model/json_api_label_out_with_links.py
+gooddata_api_client/model/json_api_label_to_many_linkage.py
+gooddata_api_client/model/json_api_label_to_one_linkage.py
+gooddata_api_client/model/json_api_metric_in.py
+gooddata_api_client/model/json_api_metric_in_attributes.py
+gooddata_api_client/model/json_api_metric_in_attributes_content.py
+gooddata_api_client/model/json_api_metric_in_document.py
+gooddata_api_client/model/json_api_metric_linkage.py
+gooddata_api_client/model/json_api_metric_out.py
+gooddata_api_client/model/json_api_metric_out_document.py
+gooddata_api_client/model/json_api_metric_out_includes.py
+gooddata_api_client/model/json_api_metric_out_list.py
+gooddata_api_client/model/json_api_metric_out_relationships.py
+gooddata_api_client/model/json_api_metric_out_with_links.py
+gooddata_api_client/model/json_api_metric_patch.py
+gooddata_api_client/model/json_api_metric_patch_attributes.py
+gooddata_api_client/model/json_api_metric_patch_document.py
+gooddata_api_client/model/json_api_metric_to_many_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_out.py
+gooddata_api_client/model/json_api_organization_out_attributes.py
+gooddata_api_client/model/json_api_organization_out_document.py
+gooddata_api_client/model/json_api_organization_out_includes.py
+gooddata_api_client/model/json_api_organization_out_meta.py
+gooddata_api_client/model/json_api_organization_out_relationships.py
+gooddata_api_client/model/json_api_organization_out_relationships_bootstrap_user.py
+gooddata_api_client/model/json_api_organization_out_relationships_bootstrap_user_group.py
+gooddata_api_client/model/json_api_organization_patch.py
+gooddata_api_client/model/json_api_organization_patch_document.py
+gooddata_api_client/model/json_api_organization_setting_in.py
+gooddata_api_client/model/json_api_organization_setting_in_attributes.py
+gooddata_api_client/model/json_api_organization_setting_in_document.py
+gooddata_api_client/model/json_api_organization_setting_out.py
+gooddata_api_client/model/json_api_organization_setting_out_document.py
+gooddata_api_client/model/json_api_organization_setting_out_list.py
+gooddata_api_client/model/json_api_organization_setting_out_with_links.py
+gooddata_api_client/model/json_api_organization_setting_patch.py
+gooddata_api_client/model/json_api_organization_setting_patch_document.py
+gooddata_api_client/model/json_api_theme_in.py
+gooddata_api_client/model/json_api_theme_in_document.py
+gooddata_api_client/model/json_api_theme_out.py
+gooddata_api_client/model/json_api_theme_out_document.py
+gooddata_api_client/model/json_api_theme_out_list.py
+gooddata_api_client/model/json_api_theme_out_with_links.py
+gooddata_api_client/model/json_api_theme_patch.py
+gooddata_api_client/model/json_api_theme_patch_document.py
+gooddata_api_client/model/json_api_user_group_in.py
+gooddata_api_client/model/json_api_user_group_in_document.py
+gooddata_api_client/model/json_api_user_group_in_relationships.py
+gooddata_api_client/model/json_api_user_group_in_relationships_parents.py
+gooddata_api_client/model/json_api_user_group_linkage.py
+gooddata_api_client/model/json_api_user_group_out.py
+gooddata_api_client/model/json_api_user_group_out_document.py
+gooddata_api_client/model/json_api_user_group_out_list.py
+gooddata_api_client/model/json_api_user_group_out_with_links.py
+gooddata_api_client/model/json_api_user_group_patch.py
+gooddata_api_client/model/json_api_user_group_patch_document.py
+gooddata_api_client/model/json_api_user_group_to_many_linkage.py
+gooddata_api_client/model/json_api_user_group_to_one_linkage.py
+gooddata_api_client/model/json_api_user_in.py
+gooddata_api_client/model/json_api_user_in_attributes.py
+gooddata_api_client/model/json_api_user_in_document.py
+gooddata_api_client/model/json_api_user_in_relationships.py
+gooddata_api_client/model/json_api_user_linkage.py
+gooddata_api_client/model/json_api_user_out.py
+gooddata_api_client/model/json_api_user_out_document.py
+gooddata_api_client/model/json_api_user_out_list.py
+gooddata_api_client/model/json_api_user_out_with_links.py
+gooddata_api_client/model/json_api_user_patch.py
+gooddata_api_client/model/json_api_user_patch_document.py
+gooddata_api_client/model/json_api_user_setting_in.py
+gooddata_api_client/model/json_api_user_setting_in_document.py
+gooddata_api_client/model/json_api_user_setting_out.py
+gooddata_api_client/model/json_api_user_setting_out_document.py
+gooddata_api_client/model/json_api_user_setting_out_list.py
+gooddata_api_client/model/json_api_user_setting_out_with_links.py
+gooddata_api_client/model/json_api_user_to_one_linkage.py
+gooddata_api_client/model/json_api_visualization_object_in.py
+gooddata_api_client/model/json_api_visualization_object_in_document.py
+gooddata_api_client/model/json_api_visualization_object_linkage.py
+gooddata_api_client/model/json_api_visualization_object_out.py
+gooddata_api_client/model/json_api_visualization_object_out_document.py
+gooddata_api_client/model/json_api_visualization_object_out_list.py
+gooddata_api_client/model/json_api_visualization_object_out_with_links.py
+gooddata_api_client/model/json_api_visualization_object_patch.py
+gooddata_api_client/model/json_api_visualization_object_patch_document.py
+gooddata_api_client/model/json_api_visualization_object_to_many_linkage.py
+gooddata_api_client/model/json_api_workspace_data_filter_in.py
+gooddata_api_client/model/json_api_workspace_data_filter_in_attributes.py
+gooddata_api_client/model/json_api_workspace_data_filter_in_document.py
+gooddata_api_client/model/json_api_workspace_data_filter_in_relationships.py
+gooddata_api_client/model/json_api_workspace_data_filter_in_relationships_filter_settings.py
+gooddata_api_client/model/json_api_workspace_data_filter_linkage.py
+gooddata_api_client/model/json_api_workspace_data_filter_out.py
+gooddata_api_client/model/json_api_workspace_data_filter_out_document.py
+gooddata_api_client/model/json_api_workspace_data_filter_out_list.py
+gooddata_api_client/model/json_api_workspace_data_filter_out_with_links.py
+gooddata_api_client/model/json_api_workspace_data_filter_patch.py
+gooddata_api_client/model/json_api_workspace_data_filter_patch_document.py
+gooddata_api_client/model/json_api_workspace_data_filter_setting_linkage.py
+gooddata_api_client/model/json_api_workspace_data_filter_setting_out.py
+gooddata_api_client/model/json_api_workspace_data_filter_setting_out_attributes.py
+gooddata_api_client/model/json_api_workspace_data_filter_setting_out_document.py
+gooddata_api_client/model/json_api_workspace_data_filter_setting_out_list.py
+gooddata_api_client/model/json_api_workspace_data_filter_setting_out_relationships.py
+gooddata_api_client/model/json_api_workspace_data_filter_setting_out_relationships_workspace_data_filter.py
+gooddata_api_client/model/json_api_workspace_data_filter_setting_out_with_links.py
+gooddata_api_client/model/json_api_workspace_data_filter_setting_to_many_linkage.py
+gooddata_api_client/model/json_api_workspace_data_filter_to_one_linkage.py
+gooddata_api_client/model/json_api_workspace_in.py
+gooddata_api_client/model/json_api_workspace_in_attributes.py
+gooddata_api_client/model/json_api_workspace_in_document.py
+gooddata_api_client/model/json_api_workspace_in_relationships.py
+gooddata_api_client/model/json_api_workspace_in_relationships_parent.py
+gooddata_api_client/model/json_api_workspace_linkage.py
+gooddata_api_client/model/json_api_workspace_out.py
+gooddata_api_client/model/json_api_workspace_out_document.py
+gooddata_api_client/model/json_api_workspace_out_list.py
+gooddata_api_client/model/json_api_workspace_out_meta.py
+gooddata_api_client/model/json_api_workspace_out_meta_config.py
+gooddata_api_client/model/json_api_workspace_out_with_links.py
+gooddata_api_client/model/json_api_workspace_patch.py
+gooddata_api_client/model/json_api_workspace_patch_document.py
+gooddata_api_client/model/json_api_workspace_setting_in.py
+gooddata_api_client/model/json_api_workspace_setting_in_document.py
+gooddata_api_client/model/json_api_workspace_setting_out.py
+gooddata_api_client/model/json_api_workspace_setting_out_document.py
+gooddata_api_client/model/json_api_workspace_setting_out_list.py
+gooddata_api_client/model/json_api_workspace_setting_out_with_links.py
+gooddata_api_client/model/json_api_workspace_setting_patch.py
+gooddata_api_client/model/json_api_workspace_setting_patch_document.py
+gooddata_api_client/model/json_api_workspace_to_one_linkage.py
+gooddata_api_client/model/label_identifier.py
+gooddata_api_client/model/list_links.py
+gooddata_api_client/model/list_links_all_of.py
+gooddata_api_client/model/measure_definition.py
+gooddata_api_client/model/measure_execution_result_header.py
+gooddata_api_client/model/measure_group_headers.py
+gooddata_api_client/model/measure_header_out.py
+gooddata_api_client/model/measure_item.py
+gooddata_api_client/model/measure_result_header.py
+gooddata_api_client/model/measure_value_filter.py
+gooddata_api_client/model/negative_attribute_filter.py
+gooddata_api_client/model/negative_attribute_filter_negative_attribute_filter.py
+gooddata_api_client/model/object_links.py
+gooddata_api_client/model/object_links_container.py
+gooddata_api_client/model/paging.py
+gooddata_api_client/model/parameter.py
+gooddata_api_client/model/platform_usage.py
+gooddata_api_client/model/platform_usage_request.py
+gooddata_api_client/model/pop_dataset.py
+gooddata_api_client/model/pop_dataset_measure_definition.py
+gooddata_api_client/model/pop_dataset_measure_definition_previous_period_measure.py
+gooddata_api_client/model/pop_date.py
+gooddata_api_client/model/pop_date_measure_definition.py
+gooddata_api_client/model/pop_date_measure_definition_over_period_measure.py
+gooddata_api_client/model/pop_measure_definition.py
+gooddata_api_client/model/positive_attribute_filter.py
+gooddata_api_client/model/positive_attribute_filter_positive_attribute_filter.py
+gooddata_api_client/model/range_measure_value_filter.py
+gooddata_api_client/model/range_measure_value_filter_range_measure_value_filter.py
+gooddata_api_client/model/ranking_filter.py
+gooddata_api_client/model/ranking_filter_ranking_filter.py
+gooddata_api_client/model/reference_identifier.py
+gooddata_api_client/model/relative_date_filter.py
+gooddata_api_client/model/relative_date_filter_relative_date_filter.py
+gooddata_api_client/model/resolve_settings_request.py
+gooddata_api_client/model/rest_api_identifier.py
+gooddata_api_client/model/result_cache_metadata.py
+gooddata_api_client/model/result_dimension.py
+gooddata_api_client/model/result_dimension_header.py
+gooddata_api_client/model/result_spec.py
+gooddata_api_client/model/scan_request.py
+gooddata_api_client/model/scan_result_pdm.py
+gooddata_api_client/model/settings.py
+gooddata_api_client/model/simple_measure_definition.py
+gooddata_api_client/model/simple_measure_definition_measure.py
+gooddata_api_client/model/sort_key.py
+gooddata_api_client/model/sort_key_attribute.py
+gooddata_api_client/model/sort_key_attribute_attribute.py
+gooddata_api_client/model/sort_key_total.py
+gooddata_api_client/model/sort_key_total_total.py
+gooddata_api_client/model/sort_key_value.py
+gooddata_api_client/model/sort_key_value_value.py
+gooddata_api_client/model/table_warning.py
+gooddata_api_client/model/tabular_export_request.py
+gooddata_api_client/model/tabular_export_result.py
+gooddata_api_client/model/test_definition_request.py
+gooddata_api_client/model/test_request.py
+gooddata_api_client/model/test_response.py
+gooddata_api_client/model/total.py
+gooddata_api_client/model/total_dimension.py
+gooddata_api_client/model/total_execution_result_header.py
+gooddata_api_client/model/total_result_header.py
+gooddata_api_client/model/user_group_identifier.py
+gooddata_api_client/model/workspace_identifier.py
+gooddata_api_client/model_utils.py
+gooddata_api_client/models/__init__.py
+gooddata_api_client/rest.py
+requirements.txt
+setup.cfg
+setup.py
+test-requirements.txt
+tox.ini
diff --git a/gooddata-api-client/.openapi-generator/VERSION b/gooddata-api-client/.openapi-generator/VERSION
new file mode 100644
index 000000000..66672d4e9
--- /dev/null
+++ b/gooddata-api-client/.openapi-generator/VERSION
@@ -0,0 +1 @@
+6.1.0-SNAPSHOT
\ No newline at end of file
diff --git a/gooddata-api-client/README.md b/gooddata-api-client/README.md
new file mode 100644
index 000000000..25194bb36
--- /dev/null
+++ b/gooddata-api-client/README.md
@@ -0,0 +1,773 @@
+# gooddata-api-client
+No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+
+This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: v0
+- Package version: 1.1.0
+- Build package: org.openapitools.codegen.languages.PythonClientCodegen
+
+## Requirements.
+
+Python >=3.6
+
+## Installation & Usage
+### pip install
+
+If the python package is hosted on a repository, you can install directly using:
+
+```sh
+pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
+```
+(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`)
+
+Then import the package:
+```python
+import gooddata_api_client
+```
+
+### Setuptools
+
+Install via [Setuptools](http://pypi.python.org/pypi/setuptools).
+
+```sh
+python setup.py install --user
+```
+(or `sudo python setup.py install` to install the package for all users)
+
+Then import the package:
+```python
+import gooddata_api_client
+```
+
+## Getting Started
+
+Please follow the [installation procedure](#installation--usage) and then run the following:
+
+```python
+
+import time
+import gooddata_api_client
+from pprint import pprint
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.afm_execution import AfmExecution
+from gooddata_api_client.model.afm_execution_response import AfmExecutionResponse
+from gooddata_api_client.model.afm_valid_objects_query import AfmValidObjectsQuery
+from gooddata_api_client.model.afm_valid_objects_response import AfmValidObjectsResponse
+from gooddata_api_client.model.api_entitlement import ApiEntitlement
+from gooddata_api_client.model.data_source_schemata import DataSourceSchemata
+from gooddata_api_client.model.declarative_model import DeclarativeModel
+from gooddata_api_client.model.declarative_setting import DeclarativeSetting
+from gooddata_api_client.model.dependent_entities_request import DependentEntitiesRequest
+from gooddata_api_client.model.dependent_entities_response import DependentEntitiesResponse
+from gooddata_api_client.model.elements_request import ElementsRequest
+from gooddata_api_client.model.elements_response import ElementsResponse
+from gooddata_api_client.model.entitlements_request import EntitlementsRequest
+from gooddata_api_client.model.execution_result import ExecutionResult
+from gooddata_api_client.model.generate_ldm_request import GenerateLdmRequest
+from gooddata_api_client.model.platform_usage import PlatformUsage
+from gooddata_api_client.model.platform_usage_request import PlatformUsageRequest
+from gooddata_api_client.model.resolve_settings_request import ResolveSettingsRequest
+from gooddata_api_client.model.result_cache_metadata import ResultCacheMetadata
+from gooddata_api_client.model.scan_request import ScanRequest
+from gooddata_api_client.model.scan_result_pdm import ScanResultPdm
+from gooddata_api_client.model.tabular_export_request import TabularExportRequest
+from gooddata_api_client.model.tabular_export_result import TabularExportResult
+from gooddata_api_client.model.test_definition_request import TestDefinitionRequest
+from gooddata_api_client.model.test_request import TestRequest
+from gooddata_api_client.model.test_response import TestResponse
+# 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(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+
+ try:
+ # Info about the platform usage.
+ api_response = api_instance.all_platform_usage()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->all_platform_usage: %s\n" % e)
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://localhost*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*ActionsApi* | [**all_platform_usage**](docs/ActionsApi.md#all_platform_usage) | **GET** /api/v1/actions/collectUsage | Info about the platform usage.
+*ActionsApi* | [**compute_label_elements_post**](docs/ActionsApi.md#compute_label_elements_post) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/collectLabelElements | Listing of label values. The resulting data are limited by the static platform limit to the maximum of 10000 rows.
+*ActionsApi* | [**compute_report**](docs/ActionsApi.md#compute_report) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute | Executes analytical request and returns link to the result
+*ActionsApi* | [**compute_valid_objects**](docs/ActionsApi.md#compute_valid_objects) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/computeValidObjects | Valid objects
+*ActionsApi* | [**create_tabular_export**](docs/ActionsApi.md#create_tabular_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/tabular | Create tabular export request
+*ActionsApi* | [**explain_afm**](docs/ActionsApi.md#explain_afm) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/explain | AFM explain resource.
+*ActionsApi* | [**generate_logical_model**](docs/ActionsApi.md#generate_logical_model) | **POST** /api/v1/actions/dataSources/{dataSourceId}/generateLogicalModel | Generate logical data model (LDM) from physical data model (PDM)
+*ActionsApi* | [**get_data_source_schemata**](docs/ActionsApi.md#get_data_source_schemata) | **GET** /api/v1/actions/dataSources/{dataSourceId}/scanSchemata | Get a list of schema names of a database
+*ActionsApi* | [**get_dependent_entities_graph**](docs/ActionsApi.md#get_dependent_entities_graph) | **GET** /api/v1/actions/workspaces/{workspaceId}/dependentEntitiesGraph | Computes the dependent entities graph
+*ActionsApi* | [**get_dependent_entities_graph_from_entry_points**](docs/ActionsApi.md#get_dependent_entities_graph_from_entry_points) | **POST** /api/v1/actions/workspaces/{workspaceId}/dependentEntitiesGraph | Computes the dependent entities graph from given entry points
+*ActionsApi* | [**get_tabular_export**](docs/ActionsApi.md#get_tabular_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/tabular/{exportId} | Retrieve exported files
+*ActionsApi* | [**particular_platform_usage**](docs/ActionsApi.md#particular_platform_usage) | **POST** /api/v1/actions/collectUsage | Info about the platform usage for particular items.
+*ActionsApi* | [**register_upload_notification**](docs/ActionsApi.md#register_upload_notification) | **POST** /api/v1/actions/dataSources/{dataSourceId}/uploadNotification | Register an upload notification
+*ActionsApi* | [**resolve_all_entitlements**](docs/ActionsApi.md#resolve_all_entitlements) | **GET** /api/v1/actions/resolveEntitlements | Values for all public entitlements.
+*ActionsApi* | [**resolve_all_settings_without_workspace**](docs/ActionsApi.md#resolve_all_settings_without_workspace) | **GET** /api/v1/actions/resolveSettings | Values for all settings without workspace.
+*ActionsApi* | [**resolve_requested_entitlements**](docs/ActionsApi.md#resolve_requested_entitlements) | **POST** /api/v1/actions/resolveEntitlements | Values for requested public entitlements.
+*ActionsApi* | [**resolve_settings_without_workspace**](docs/ActionsApi.md#resolve_settings_without_workspace) | **POST** /api/v1/actions/resolveSettings | Values for selected settings without workspace.
+*ActionsApi* | [**retrieve_execution_metadata**](docs/ActionsApi.md#retrieve_execution_metadata) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId}/metadata | Get a single execution result's metadata.
+*ActionsApi* | [**retrieve_result**](docs/ActionsApi.md#retrieve_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId} | Get a single execution result
+*ActionsApi* | [**scan_data_source**](docs/ActionsApi.md#scan_data_source) | **POST** /api/v1/actions/dataSources/{dataSourceId}/scan | Scan a database to get a physical data model (PDM)
+*ActionsApi* | [**test_data_source**](docs/ActionsApi.md#test_data_source) | **POST** /api/v1/actions/dataSources/{dataSourceId}/test | Test data source connection by data source id
+*ActionsApi* | [**test_data_source_definition**](docs/ActionsApi.md#test_data_source_definition) | **POST** /api/v1/actions/dataSource/test | Test connection by data source definition
+*ActionsApi* | [**workspace_resolve_all_settings**](docs/ActionsApi.md#workspace_resolve_all_settings) | **GET** /api/v1/actions/workspaces/{workspaceId}/resolveSettings | Values for all settings.
+*ActionsApi* | [**workspace_resolve_settings**](docs/ActionsApi.md#workspace_resolve_settings) | **POST** /api/v1/actions/workspaces/{workspaceId}/resolveSettings | Values for selected settings.
+*EntitiesApi* | [**create_entity_analytical_dashboards**](docs/EntitiesApi.md#create_entity_analytical_dashboards) | **POST** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards |
+*EntitiesApi* | [**create_entity_api_tokens**](docs/EntitiesApi.md#create_entity_api_tokens) | **POST** /api/v1/entities/users/{userId}/apiTokens |
+*EntitiesApi* | [**create_entity_color_palettes**](docs/EntitiesApi.md#create_entity_color_palettes) | **POST** /api/v1/entities/colorPalettes |
+*EntitiesApi* | [**create_entity_csp_directives**](docs/EntitiesApi.md#create_entity_csp_directives) | **POST** /api/v1/entities/cspDirectives |
+*EntitiesApi* | [**create_entity_dashboard_plugins**](docs/EntitiesApi.md#create_entity_dashboard_plugins) | **POST** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins |
+*EntitiesApi* | [**create_entity_data_sources**](docs/EntitiesApi.md#create_entity_data_sources) | **POST** /api/v1/entities/dataSources |
+*EntitiesApi* | [**create_entity_filter_contexts**](docs/EntitiesApi.md#create_entity_filter_contexts) | **POST** /api/v1/entities/workspaces/{workspaceId}/filterContexts |
+*EntitiesApi* | [**create_entity_metrics**](docs/EntitiesApi.md#create_entity_metrics) | **POST** /api/v1/entities/workspaces/{workspaceId}/metrics |
+*EntitiesApi* | [**create_entity_organization_settings**](docs/EntitiesApi.md#create_entity_organization_settings) | **POST** /api/v1/entities/organizationSettings |
+*EntitiesApi* | [**create_entity_themes**](docs/EntitiesApi.md#create_entity_themes) | **POST** /api/v1/entities/themes |
+*EntitiesApi* | [**create_entity_user_groups**](docs/EntitiesApi.md#create_entity_user_groups) | **POST** /api/v1/entities/userGroups |
+*EntitiesApi* | [**create_entity_user_settings**](docs/EntitiesApi.md#create_entity_user_settings) | **POST** /api/v1/entities/users/{userId}/userSettings |
+*EntitiesApi* | [**create_entity_users**](docs/EntitiesApi.md#create_entity_users) | **POST** /api/v1/entities/users |
+*EntitiesApi* | [**create_entity_visualization_objects**](docs/EntitiesApi.md#create_entity_visualization_objects) | **POST** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects |
+*EntitiesApi* | [**create_entity_workspace_data_filters**](docs/EntitiesApi.md#create_entity_workspace_data_filters) | **POST** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters |
+*EntitiesApi* | [**create_entity_workspace_settings**](docs/EntitiesApi.md#create_entity_workspace_settings) | **POST** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings |
+*EntitiesApi* | [**create_entity_workspaces**](docs/EntitiesApi.md#create_entity_workspaces) | **POST** /api/v1/entities/workspaces |
+*EntitiesApi* | [**delete_entity_analytical_dashboards**](docs/EntitiesApi.md#delete_entity_analytical_dashboards) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId} |
+*EntitiesApi* | [**delete_entity_api_tokens**](docs/EntitiesApi.md#delete_entity_api_tokens) | **DELETE** /api/v1/entities/users/{userId}/apiTokens/{id} |
+*EntitiesApi* | [**delete_entity_color_palettes**](docs/EntitiesApi.md#delete_entity_color_palettes) | **DELETE** /api/v1/entities/colorPalettes/{id} |
+*EntitiesApi* | [**delete_entity_csp_directives**](docs/EntitiesApi.md#delete_entity_csp_directives) | **DELETE** /api/v1/entities/cspDirectives/{id} |
+*EntitiesApi* | [**delete_entity_dashboard_plugins**](docs/EntitiesApi.md#delete_entity_dashboard_plugins) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId} |
+*EntitiesApi* | [**delete_entity_data_sources**](docs/EntitiesApi.md#delete_entity_data_sources) | **DELETE** /api/v1/entities/dataSources/{id} |
+*EntitiesApi* | [**delete_entity_filter_contexts**](docs/EntitiesApi.md#delete_entity_filter_contexts) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId} |
+*EntitiesApi* | [**delete_entity_metrics**](docs/EntitiesApi.md#delete_entity_metrics) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} |
+*EntitiesApi* | [**delete_entity_organization_settings**](docs/EntitiesApi.md#delete_entity_organization_settings) | **DELETE** /api/v1/entities/organizationSettings/{id} |
+*EntitiesApi* | [**delete_entity_themes**](docs/EntitiesApi.md#delete_entity_themes) | **DELETE** /api/v1/entities/themes/{id} |
+*EntitiesApi* | [**delete_entity_user_groups**](docs/EntitiesApi.md#delete_entity_user_groups) | **DELETE** /api/v1/entities/userGroups/{id} |
+*EntitiesApi* | [**delete_entity_user_settings**](docs/EntitiesApi.md#delete_entity_user_settings) | **DELETE** /api/v1/entities/users/{userId}/userSettings/{id} |
+*EntitiesApi* | [**delete_entity_users**](docs/EntitiesApi.md#delete_entity_users) | **DELETE** /api/v1/entities/users/{id} |
+*EntitiesApi* | [**delete_entity_visualization_objects**](docs/EntitiesApi.md#delete_entity_visualization_objects) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId} |
+*EntitiesApi* | [**delete_entity_workspace_data_filters**](docs/EntitiesApi.md#delete_entity_workspace_data_filters) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId} |
+*EntitiesApi* | [**delete_entity_workspace_settings**](docs/EntitiesApi.md#delete_entity_workspace_settings) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId} |
+*EntitiesApi* | [**delete_entity_workspaces**](docs/EntitiesApi.md#delete_entity_workspaces) | **DELETE** /api/v1/entities/workspaces/{id} |
+*EntitiesApi* | [**get_all_entities_analytical_dashboards**](docs/EntitiesApi.md#get_all_entities_analytical_dashboards) | **GET** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards |
+*EntitiesApi* | [**get_all_entities_api_tokens**](docs/EntitiesApi.md#get_all_entities_api_tokens) | **GET** /api/v1/entities/users/{userId}/apiTokens |
+*EntitiesApi* | [**get_all_entities_attributes**](docs/EntitiesApi.md#get_all_entities_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/attributes |
+*EntitiesApi* | [**get_all_entities_color_palettes**](docs/EntitiesApi.md#get_all_entities_color_palettes) | **GET** /api/v1/entities/colorPalettes |
+*EntitiesApi* | [**get_all_entities_csp_directives**](docs/EntitiesApi.md#get_all_entities_csp_directives) | **GET** /api/v1/entities/cspDirectives |
+*EntitiesApi* | [**get_all_entities_dashboard_plugins**](docs/EntitiesApi.md#get_all_entities_dashboard_plugins) | **GET** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins |
+*EntitiesApi* | [**get_all_entities_data_source_identifiers**](docs/EntitiesApi.md#get_all_entities_data_source_identifiers) | **GET** /api/v1/entities/dataSourceIdentifiers |
+*EntitiesApi* | [**get_all_entities_data_source_tables**](docs/EntitiesApi.md#get_all_entities_data_source_tables) | **GET** /api/v1/entities/dataSources/{dataSourceId}/dataSourceTables |
+*EntitiesApi* | [**get_all_entities_data_sources**](docs/EntitiesApi.md#get_all_entities_data_sources) | **GET** /api/v1/entities/dataSources |
+*EntitiesApi* | [**get_all_entities_datasets**](docs/EntitiesApi.md#get_all_entities_datasets) | **GET** /api/v1/entities/workspaces/{workspaceId}/datasets |
+*EntitiesApi* | [**get_all_entities_entitlements**](docs/EntitiesApi.md#get_all_entities_entitlements) | **GET** /api/v1/entities/entitlements |
+*EntitiesApi* | [**get_all_entities_facts**](docs/EntitiesApi.md#get_all_entities_facts) | **GET** /api/v1/entities/workspaces/{workspaceId}/facts |
+*EntitiesApi* | [**get_all_entities_filter_contexts**](docs/EntitiesApi.md#get_all_entities_filter_contexts) | **GET** /api/v1/entities/workspaces/{workspaceId}/filterContexts |
+*EntitiesApi* | [**get_all_entities_labels**](docs/EntitiesApi.md#get_all_entities_labels) | **GET** /api/v1/entities/workspaces/{workspaceId}/labels |
+*EntitiesApi* | [**get_all_entities_metrics**](docs/EntitiesApi.md#get_all_entities_metrics) | **GET** /api/v1/entities/workspaces/{workspaceId}/metrics |
+*EntitiesApi* | [**get_all_entities_organization_settings**](docs/EntitiesApi.md#get_all_entities_organization_settings) | **GET** /api/v1/entities/organizationSettings |
+*EntitiesApi* | [**get_all_entities_themes**](docs/EntitiesApi.md#get_all_entities_themes) | **GET** /api/v1/entities/themes |
+*EntitiesApi* | [**get_all_entities_user_groups**](docs/EntitiesApi.md#get_all_entities_user_groups) | **GET** /api/v1/entities/userGroups |
+*EntitiesApi* | [**get_all_entities_user_settings**](docs/EntitiesApi.md#get_all_entities_user_settings) | **GET** /api/v1/entities/users/{userId}/userSettings |
+*EntitiesApi* | [**get_all_entities_users**](docs/EntitiesApi.md#get_all_entities_users) | **GET** /api/v1/entities/users |
+*EntitiesApi* | [**get_all_entities_visualization_objects**](docs/EntitiesApi.md#get_all_entities_visualization_objects) | **GET** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects |
+*EntitiesApi* | [**get_all_entities_workspace_data_filter_settings**](docs/EntitiesApi.md#get_all_entities_workspace_data_filter_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilterSettings |
+*EntitiesApi* | [**get_all_entities_workspace_data_filters**](docs/EntitiesApi.md#get_all_entities_workspace_data_filters) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters |
+*EntitiesApi* | [**get_all_entities_workspace_settings**](docs/EntitiesApi.md#get_all_entities_workspace_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings |
+*EntitiesApi* | [**get_all_entities_workspaces**](docs/EntitiesApi.md#get_all_entities_workspaces) | **GET** /api/v1/entities/workspaces |
+*EntitiesApi* | [**get_all_options**](docs/EntitiesApi.md#get_all_options) | **GET** /api/v1/options | Links for all configuration options
+*EntitiesApi* | [**get_data_source_drivers**](docs/EntitiesApi.md#get_data_source_drivers) | **GET** /api/v1/options/availableDrivers | Get all available data source drivers
+*EntitiesApi* | [**get_entity_analytical_dashboards**](docs/EntitiesApi.md#get_entity_analytical_dashboards) | **GET** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId} |
+*EntitiesApi* | [**get_entity_api_tokens**](docs/EntitiesApi.md#get_entity_api_tokens) | **GET** /api/v1/entities/users/{userId}/apiTokens/{id} |
+*EntitiesApi* | [**get_entity_attributes**](docs/EntitiesApi.md#get_entity_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/attributes/{objectId} |
+*EntitiesApi* | [**get_entity_color_palettes**](docs/EntitiesApi.md#get_entity_color_palettes) | **GET** /api/v1/entities/colorPalettes/{id} |
+*EntitiesApi* | [**get_entity_cookie_security_configurations**](docs/EntitiesApi.md#get_entity_cookie_security_configurations) | **GET** /api/v1/entities/admin/cookieSecurityConfigurations/{id} |
+*EntitiesApi* | [**get_entity_csp_directives**](docs/EntitiesApi.md#get_entity_csp_directives) | **GET** /api/v1/entities/cspDirectives/{id} |
+*EntitiesApi* | [**get_entity_dashboard_plugins**](docs/EntitiesApi.md#get_entity_dashboard_plugins) | **GET** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId} |
+*EntitiesApi* | [**get_entity_data_source_identifiers**](docs/EntitiesApi.md#get_entity_data_source_identifiers) | **GET** /api/v1/entities/dataSourceIdentifiers/{id} |
+*EntitiesApi* | [**get_entity_data_source_tables**](docs/EntitiesApi.md#get_entity_data_source_tables) | **GET** /api/v1/entities/dataSources/{dataSourceId}/dataSourceTables/{id} |
+*EntitiesApi* | [**get_entity_data_sources**](docs/EntitiesApi.md#get_entity_data_sources) | **GET** /api/v1/entities/dataSources/{id} |
+*EntitiesApi* | [**get_entity_datasets**](docs/EntitiesApi.md#get_entity_datasets) | **GET** /api/v1/entities/workspaces/{workspaceId}/datasets/{objectId} |
+*EntitiesApi* | [**get_entity_entitlements**](docs/EntitiesApi.md#get_entity_entitlements) | **GET** /api/v1/entities/entitlements/{id} |
+*EntitiesApi* | [**get_entity_facts**](docs/EntitiesApi.md#get_entity_facts) | **GET** /api/v1/entities/workspaces/{workspaceId}/facts/{objectId} |
+*EntitiesApi* | [**get_entity_filter_contexts**](docs/EntitiesApi.md#get_entity_filter_contexts) | **GET** /api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId} |
+*EntitiesApi* | [**get_entity_labels**](docs/EntitiesApi.md#get_entity_labels) | **GET** /api/v1/entities/workspaces/{workspaceId}/labels/{objectId} |
+*EntitiesApi* | [**get_entity_metrics**](docs/EntitiesApi.md#get_entity_metrics) | **GET** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} |
+*EntitiesApi* | [**get_entity_organization_settings**](docs/EntitiesApi.md#get_entity_organization_settings) | **GET** /api/v1/entities/organizationSettings/{id} |
+*EntitiesApi* | [**get_entity_organizations**](docs/EntitiesApi.md#get_entity_organizations) | **GET** /api/v1/entities/admin/organizations/{id} |
+*EntitiesApi* | [**get_entity_themes**](docs/EntitiesApi.md#get_entity_themes) | **GET** /api/v1/entities/themes/{id} |
+*EntitiesApi* | [**get_entity_user_groups**](docs/EntitiesApi.md#get_entity_user_groups) | **GET** /api/v1/entities/userGroups/{id} |
+*EntitiesApi* | [**get_entity_user_settings**](docs/EntitiesApi.md#get_entity_user_settings) | **GET** /api/v1/entities/users/{userId}/userSettings/{id} |
+*EntitiesApi* | [**get_entity_users**](docs/EntitiesApi.md#get_entity_users) | **GET** /api/v1/entities/users/{id} |
+*EntitiesApi* | [**get_entity_visualization_objects**](docs/EntitiesApi.md#get_entity_visualization_objects) | **GET** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId} |
+*EntitiesApi* | [**get_entity_workspace_data_filter_settings**](docs/EntitiesApi.md#get_entity_workspace_data_filter_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilterSettings/{objectId} |
+*EntitiesApi* | [**get_entity_workspace_data_filters**](docs/EntitiesApi.md#get_entity_workspace_data_filters) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId} |
+*EntitiesApi* | [**get_entity_workspace_settings**](docs/EntitiesApi.md#get_entity_workspace_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId} |
+*EntitiesApi* | [**get_entity_workspaces**](docs/EntitiesApi.md#get_entity_workspaces) | **GET** /api/v1/entities/workspaces/{id} |
+*EntitiesApi* | [**get_organization**](docs/EntitiesApi.md#get_organization) | **GET** /api/v1/entities/organization | Get current organization info
+*EntitiesApi* | [**patch_entity_analytical_dashboards**](docs/EntitiesApi.md#patch_entity_analytical_dashboards) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId} |
+*EntitiesApi* | [**patch_entity_color_palettes**](docs/EntitiesApi.md#patch_entity_color_palettes) | **PATCH** /api/v1/entities/colorPalettes/{id} |
+*EntitiesApi* | [**patch_entity_cookie_security_configurations**](docs/EntitiesApi.md#patch_entity_cookie_security_configurations) | **PATCH** /api/v1/entities/admin/cookieSecurityConfigurations/{id} |
+*EntitiesApi* | [**patch_entity_csp_directives**](docs/EntitiesApi.md#patch_entity_csp_directives) | **PATCH** /api/v1/entities/cspDirectives/{id} |
+*EntitiesApi* | [**patch_entity_dashboard_plugins**](docs/EntitiesApi.md#patch_entity_dashboard_plugins) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId} |
+*EntitiesApi* | [**patch_entity_data_sources**](docs/EntitiesApi.md#patch_entity_data_sources) | **PATCH** /api/v1/entities/dataSources/{id} |
+*EntitiesApi* | [**patch_entity_filter_contexts**](docs/EntitiesApi.md#patch_entity_filter_contexts) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId} |
+*EntitiesApi* | [**patch_entity_metrics**](docs/EntitiesApi.md#patch_entity_metrics) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} |
+*EntitiesApi* | [**patch_entity_organization_settings**](docs/EntitiesApi.md#patch_entity_organization_settings) | **PATCH** /api/v1/entities/organizationSettings/{id} |
+*EntitiesApi* | [**patch_entity_organizations**](docs/EntitiesApi.md#patch_entity_organizations) | **PATCH** /api/v1/entities/admin/organizations/{id} |
+*EntitiesApi* | [**patch_entity_themes**](docs/EntitiesApi.md#patch_entity_themes) | **PATCH** /api/v1/entities/themes/{id} |
+*EntitiesApi* | [**patch_entity_user_groups**](docs/EntitiesApi.md#patch_entity_user_groups) | **PATCH** /api/v1/entities/userGroups/{id} |
+*EntitiesApi* | [**patch_entity_users**](docs/EntitiesApi.md#patch_entity_users) | **PATCH** /api/v1/entities/users/{id} |
+*EntitiesApi* | [**patch_entity_visualization_objects**](docs/EntitiesApi.md#patch_entity_visualization_objects) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId} |
+*EntitiesApi* | [**patch_entity_workspace_data_filters**](docs/EntitiesApi.md#patch_entity_workspace_data_filters) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId} |
+*EntitiesApi* | [**patch_entity_workspace_settings**](docs/EntitiesApi.md#patch_entity_workspace_settings) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId} |
+*EntitiesApi* | [**patch_entity_workspaces**](docs/EntitiesApi.md#patch_entity_workspaces) | **PATCH** /api/v1/entities/workspaces/{id} |
+*EntitiesApi* | [**update_entity_analytical_dashboards**](docs/EntitiesApi.md#update_entity_analytical_dashboards) | **PUT** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId} |
+*EntitiesApi* | [**update_entity_api_tokens**](docs/EntitiesApi.md#update_entity_api_tokens) | **PUT** /api/v1/entities/users/{userId}/apiTokens/{id} |
+*EntitiesApi* | [**update_entity_color_palettes**](docs/EntitiesApi.md#update_entity_color_palettes) | **PUT** /api/v1/entities/colorPalettes/{id} |
+*EntitiesApi* | [**update_entity_cookie_security_configurations**](docs/EntitiesApi.md#update_entity_cookie_security_configurations) | **PUT** /api/v1/entities/admin/cookieSecurityConfigurations/{id} |
+*EntitiesApi* | [**update_entity_csp_directives**](docs/EntitiesApi.md#update_entity_csp_directives) | **PUT** /api/v1/entities/cspDirectives/{id} |
+*EntitiesApi* | [**update_entity_dashboard_plugins**](docs/EntitiesApi.md#update_entity_dashboard_plugins) | **PUT** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId} |
+*EntitiesApi* | [**update_entity_data_sources**](docs/EntitiesApi.md#update_entity_data_sources) | **PUT** /api/v1/entities/dataSources/{id} |
+*EntitiesApi* | [**update_entity_filter_contexts**](docs/EntitiesApi.md#update_entity_filter_contexts) | **PUT** /api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId} |
+*EntitiesApi* | [**update_entity_metrics**](docs/EntitiesApi.md#update_entity_metrics) | **PUT** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} |
+*EntitiesApi* | [**update_entity_organization_settings**](docs/EntitiesApi.md#update_entity_organization_settings) | **PUT** /api/v1/entities/organizationSettings/{id} |
+*EntitiesApi* | [**update_entity_organizations**](docs/EntitiesApi.md#update_entity_organizations) | **PUT** /api/v1/entities/admin/organizations/{id} |
+*EntitiesApi* | [**update_entity_themes**](docs/EntitiesApi.md#update_entity_themes) | **PUT** /api/v1/entities/themes/{id} |
+*EntitiesApi* | [**update_entity_user_groups**](docs/EntitiesApi.md#update_entity_user_groups) | **PUT** /api/v1/entities/userGroups/{id} |
+*EntitiesApi* | [**update_entity_user_settings**](docs/EntitiesApi.md#update_entity_user_settings) | **PUT** /api/v1/entities/users/{userId}/userSettings/{id} |
+*EntitiesApi* | [**update_entity_users**](docs/EntitiesApi.md#update_entity_users) | **PUT** /api/v1/entities/users/{id} |
+*EntitiesApi* | [**update_entity_visualization_objects**](docs/EntitiesApi.md#update_entity_visualization_objects) | **PUT** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId} |
+*EntitiesApi* | [**update_entity_workspace_data_filters**](docs/EntitiesApi.md#update_entity_workspace_data_filters) | **PUT** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId} |
+*EntitiesApi* | [**update_entity_workspace_settings**](docs/EntitiesApi.md#update_entity_workspace_settings) | **PUT** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId} |
+*EntitiesApi* | [**update_entity_workspaces**](docs/EntitiesApi.md#update_entity_workspaces) | **PUT** /api/v1/entities/workspaces/{id} |
+*LayoutApi* | [**get_analytics_model**](docs/LayoutApi.md#get_analytics_model) | **GET** /api/v1/layout/workspaces/{workspaceId}/analyticsModel | Get analytics model
+*LayoutApi* | [**get_data_sources_layout**](docs/LayoutApi.md#get_data_sources_layout) | **GET** /api/v1/layout/dataSources | Get all data sources
+*LayoutApi* | [**get_logical_model**](docs/LayoutApi.md#get_logical_model) | **GET** /api/v1/layout/workspaces/{workspaceId}/logicalModel | Get logical model
+*LayoutApi* | [**get_organization_layout**](docs/LayoutApi.md#get_organization_layout) | **GET** /api/v1/layout/organization | Get organization layout
+*LayoutApi* | [**get_pdm_layout**](docs/LayoutApi.md#get_pdm_layout) | **GET** /api/v1/layout/dataSources/{dataSourceId}/physicalModel | Get data source physical model layout
+*LayoutApi* | [**get_user_groups_layout**](docs/LayoutApi.md#get_user_groups_layout) | **GET** /api/v1/layout/userGroups | Get all user groups
+*LayoutApi* | [**get_users_layout**](docs/LayoutApi.md#get_users_layout) | **GET** /api/v1/layout/users | Get all users
+*LayoutApi* | [**get_users_user_groups_layout**](docs/LayoutApi.md#get_users_user_groups_layout) | **GET** /api/v1/layout/usersAndUserGroups | Get all users and user groups
+*LayoutApi* | [**get_workspace_data_filters_layout**](docs/LayoutApi.md#get_workspace_data_filters_layout) | **GET** /api/v1/layout/workspaceDataFilters | Get workspace data filters for all workspaces
+*LayoutApi* | [**get_workspace_layout**](docs/LayoutApi.md#get_workspace_layout) | **GET** /api/v1/layout/workspaces/{workspaceId} | Get workspace layout
+*LayoutApi* | [**get_workspace_permissions**](docs/LayoutApi.md#get_workspace_permissions) | **GET** /api/v1/layout/workspaces/{workspaceId}/permissions | Get permissions for the workspace
+*LayoutApi* | [**get_workspaces_layout**](docs/LayoutApi.md#get_workspaces_layout) | **GET** /api/v1/layout/workspaces | Get all workspaces layout
+*LayoutApi* | [**put_data_sources_layout**](docs/LayoutApi.md#put_data_sources_layout) | **PUT** /api/v1/layout/dataSources | Put all data sources
+*LayoutApi* | [**put_user_groups_layout**](docs/LayoutApi.md#put_user_groups_layout) | **PUT** /api/v1/layout/userGroups | Put all user groups
+*LayoutApi* | [**put_users_layout**](docs/LayoutApi.md#put_users_layout) | **PUT** /api/v1/layout/users | Put all users
+*LayoutApi* | [**put_users_user_groups_layout**](docs/LayoutApi.md#put_users_user_groups_layout) | **PUT** /api/v1/layout/usersAndUserGroups | Put all users and user groups
+*LayoutApi* | [**put_workspace_layout**](docs/LayoutApi.md#put_workspace_layout) | **PUT** /api/v1/layout/workspaces/{workspaceId} | Set workspace layout
+*LayoutApi* | [**set_analytics_model**](docs/LayoutApi.md#set_analytics_model) | **PUT** /api/v1/layout/workspaces/{workspaceId}/analyticsModel | Set analytics model
+*LayoutApi* | [**set_logical_model**](docs/LayoutApi.md#set_logical_model) | **PUT** /api/v1/layout/workspaces/{workspaceId}/logicalModel | Set logical model
+*LayoutApi* | [**set_organization_layout**](docs/LayoutApi.md#set_organization_layout) | **PUT** /api/v1/layout/organization | Set organization layout
+*LayoutApi* | [**set_pdm_layout**](docs/LayoutApi.md#set_pdm_layout) | **PUT** /api/v1/layout/dataSources/{dataSourceId}/physicalModel | Set data source physical model layout
+*LayoutApi* | [**set_workspace_data_filters_layout**](docs/LayoutApi.md#set_workspace_data_filters_layout) | **PUT** /api/v1/layout/workspaceDataFilters | Set all workspace data filters
+*LayoutApi* | [**set_workspace_permissions**](docs/LayoutApi.md#set_workspace_permissions) | **PUT** /api/v1/layout/workspaces/{workspaceId}/permissions | Set permissions for the workspace
+*LayoutApi* | [**set_workspaces_layout**](docs/LayoutApi.md#set_workspaces_layout) | **PUT** /api/v1/layout/workspaces | Set all workspaces layout
+
+
+## Documentation For Models
+
+ - [AFM](docs/AFM.md)
+ - [AbsoluteDateFilter](docs/AbsoluteDateFilter.md)
+ - [AbsoluteDateFilterAbsoluteDateFilter](docs/AbsoluteDateFilterAbsoluteDateFilter.md)
+ - [AbstractMeasureValueFilter](docs/AbstractMeasureValueFilter.md)
+ - [AfmExecution](docs/AfmExecution.md)
+ - [AfmExecutionResponse](docs/AfmExecutionResponse.md)
+ - [AfmIdentifier](docs/AfmIdentifier.md)
+ - [AfmLocalIdentifier](docs/AfmLocalIdentifier.md)
+ - [AfmObjectIdentifier](docs/AfmObjectIdentifier.md)
+ - [AfmObjectIdentifierAttribute](docs/AfmObjectIdentifierAttribute.md)
+ - [AfmObjectIdentifierAttributeIdentifier](docs/AfmObjectIdentifierAttributeIdentifier.md)
+ - [AfmObjectIdentifierCore](docs/AfmObjectIdentifierCore.md)
+ - [AfmObjectIdentifierCoreIdentifier](docs/AfmObjectIdentifierCoreIdentifier.md)
+ - [AfmObjectIdentifierDataset](docs/AfmObjectIdentifierDataset.md)
+ - [AfmObjectIdentifierDatasetIdentifier](docs/AfmObjectIdentifierDatasetIdentifier.md)
+ - [AfmObjectIdentifierIdentifier](docs/AfmObjectIdentifierIdentifier.md)
+ - [AfmObjectIdentifierLabel](docs/AfmObjectIdentifierLabel.md)
+ - [AfmObjectIdentifierLabelIdentifier](docs/AfmObjectIdentifierLabelIdentifier.md)
+ - [AfmValidObjectsQuery](docs/AfmValidObjectsQuery.md)
+ - [AfmValidObjectsResponse](docs/AfmValidObjectsResponse.md)
+ - [ApiEntitlement](docs/ApiEntitlement.md)
+ - [ArithmeticMeasureDefinition](docs/ArithmeticMeasureDefinition.md)
+ - [ArithmeticMeasureDefinitionArithmeticMeasure](docs/ArithmeticMeasureDefinitionArithmeticMeasure.md)
+ - [AssigneeIdentifier](docs/AssigneeIdentifier.md)
+ - [AttributeExecutionResultHeader](docs/AttributeExecutionResultHeader.md)
+ - [AttributeFilter](docs/AttributeFilter.md)
+ - [AttributeFilterElements](docs/AttributeFilterElements.md)
+ - [AttributeHeaderOut](docs/AttributeHeaderOut.md)
+ - [AttributeHeaderOutAttributeHeader](docs/AttributeHeaderOutAttributeHeader.md)
+ - [AttributeItem](docs/AttributeItem.md)
+ - [AttributeResultHeader](docs/AttributeResultHeader.md)
+ - [ColumnWarning](docs/ColumnWarning.md)
+ - [ComparisonMeasureValueFilter](docs/ComparisonMeasureValueFilter.md)
+ - [ComparisonMeasureValueFilterComparisonMeasureValueFilter](docs/ComparisonMeasureValueFilterComparisonMeasureValueFilter.md)
+ - [CustomLabel](docs/CustomLabel.md)
+ - [CustomMetric](docs/CustomMetric.md)
+ - [CustomOverride](docs/CustomOverride.md)
+ - [DataColumnLocator](docs/DataColumnLocator.md)
+ - [DataColumnLocators](docs/DataColumnLocators.md)
+ - [DataSourceParameter](docs/DataSourceParameter.md)
+ - [DataSourceSchemata](docs/DataSourceSchemata.md)
+ - [DataSourceTableIdentifier](docs/DataSourceTableIdentifier.md)
+ - [DatasetReferenceIdentifier](docs/DatasetReferenceIdentifier.md)
+ - [DateFilter](docs/DateFilter.md)
+ - [DeclarativeAnalyticalDashboard](docs/DeclarativeAnalyticalDashboard.md)
+ - [DeclarativeAnalytics](docs/DeclarativeAnalytics.md)
+ - [DeclarativeAnalyticsLayer](docs/DeclarativeAnalyticsLayer.md)
+ - [DeclarativeAttribute](docs/DeclarativeAttribute.md)
+ - [DeclarativeColorPalette](docs/DeclarativeColorPalette.md)
+ - [DeclarativeColumn](docs/DeclarativeColumn.md)
+ - [DeclarativeCspDirective](docs/DeclarativeCspDirective.md)
+ - [DeclarativeDashboardPlugin](docs/DeclarativeDashboardPlugin.md)
+ - [DeclarativeDataSource](docs/DeclarativeDataSource.md)
+ - [DeclarativeDataSourcePermission](docs/DeclarativeDataSourcePermission.md)
+ - [DeclarativeDataSources](docs/DeclarativeDataSources.md)
+ - [DeclarativeDataset](docs/DeclarativeDataset.md)
+ - [DeclarativeDateDataset](docs/DeclarativeDateDataset.md)
+ - [DeclarativeFact](docs/DeclarativeFact.md)
+ - [DeclarativeFilterContext](docs/DeclarativeFilterContext.md)
+ - [DeclarativeLabel](docs/DeclarativeLabel.md)
+ - [DeclarativeLdm](docs/DeclarativeLdm.md)
+ - [DeclarativeMetric](docs/DeclarativeMetric.md)
+ - [DeclarativeModel](docs/DeclarativeModel.md)
+ - [DeclarativeOrganization](docs/DeclarativeOrganization.md)
+ - [DeclarativeOrganizationInfo](docs/DeclarativeOrganizationInfo.md)
+ - [DeclarativeOrganizationPermission](docs/DeclarativeOrganizationPermission.md)
+ - [DeclarativePdm](docs/DeclarativePdm.md)
+ - [DeclarativeReference](docs/DeclarativeReference.md)
+ - [DeclarativeSetting](docs/DeclarativeSetting.md)
+ - [DeclarativeSingleWorkspacePermission](docs/DeclarativeSingleWorkspacePermission.md)
+ - [DeclarativeTable](docs/DeclarativeTable.md)
+ - [DeclarativeTables](docs/DeclarativeTables.md)
+ - [DeclarativeTheme](docs/DeclarativeTheme.md)
+ - [DeclarativeUser](docs/DeclarativeUser.md)
+ - [DeclarativeUserGroup](docs/DeclarativeUserGroup.md)
+ - [DeclarativeUserGroups](docs/DeclarativeUserGroups.md)
+ - [DeclarativeUsers](docs/DeclarativeUsers.md)
+ - [DeclarativeUsersUserGroups](docs/DeclarativeUsersUserGroups.md)
+ - [DeclarativeVisualizationObject](docs/DeclarativeVisualizationObject.md)
+ - [DeclarativeWorkspace](docs/DeclarativeWorkspace.md)
+ - [DeclarativeWorkspaceDataFilter](docs/DeclarativeWorkspaceDataFilter.md)
+ - [DeclarativeWorkspaceDataFilterSetting](docs/DeclarativeWorkspaceDataFilterSetting.md)
+ - [DeclarativeWorkspaceDataFilters](docs/DeclarativeWorkspaceDataFilters.md)
+ - [DeclarativeWorkspaceHierarchyPermission](docs/DeclarativeWorkspaceHierarchyPermission.md)
+ - [DeclarativeWorkspaceModel](docs/DeclarativeWorkspaceModel.md)
+ - [DeclarativeWorkspacePermissions](docs/DeclarativeWorkspacePermissions.md)
+ - [DeclarativeWorkspaces](docs/DeclarativeWorkspaces.md)
+ - [DependentEntitiesGraph](docs/DependentEntitiesGraph.md)
+ - [DependentEntitiesNode](docs/DependentEntitiesNode.md)
+ - [DependentEntitiesRequest](docs/DependentEntitiesRequest.md)
+ - [DependentEntitiesResponse](docs/DependentEntitiesResponse.md)
+ - [Dimension](docs/Dimension.md)
+ - [DimensionHeader](docs/DimensionHeader.md)
+ - [Element](docs/Element.md)
+ - [ElementsRequest](docs/ElementsRequest.md)
+ - [ElementsResponse](docs/ElementsResponse.md)
+ - [EntitlementsRequest](docs/EntitlementsRequest.md)
+ - [EntityIdentifier](docs/EntityIdentifier.md)
+ - [ExecutionLinks](docs/ExecutionLinks.md)
+ - [ExecutionResponse](docs/ExecutionResponse.md)
+ - [ExecutionResult](docs/ExecutionResult.md)
+ - [ExecutionResultGrandTotal](docs/ExecutionResultGrandTotal.md)
+ - [ExecutionResultHeader](docs/ExecutionResultHeader.md)
+ - [ExecutionResultPaging](docs/ExecutionResultPaging.md)
+ - [ExecutionSettings](docs/ExecutionSettings.md)
+ - [FilterBy](docs/FilterBy.md)
+ - [FilterDefinition](docs/FilterDefinition.md)
+ - [FilterDefinitionForSimpleMeasure](docs/FilterDefinitionForSimpleMeasure.md)
+ - [GenerateLdmRequest](docs/GenerateLdmRequest.md)
+ - [GrainIdentifier](docs/GrainIdentifier.md)
+ - [GranularitiesFormatting](docs/GranularitiesFormatting.md)
+ - [HeaderGroup](docs/HeaderGroup.md)
+ - [InlineFilterDefinition](docs/InlineFilterDefinition.md)
+ - [InlineFilterDefinitionInline](docs/InlineFilterDefinitionInline.md)
+ - [InlineMeasureDefinition](docs/InlineMeasureDefinition.md)
+ - [InlineMeasureDefinitionInline](docs/InlineMeasureDefinitionInline.md)
+ - [JsonApiAnalyticalDashboardIn](docs/JsonApiAnalyticalDashboardIn.md)
+ - [JsonApiAnalyticalDashboardInAttributes](docs/JsonApiAnalyticalDashboardInAttributes.md)
+ - [JsonApiAnalyticalDashboardInDocument](docs/JsonApiAnalyticalDashboardInDocument.md)
+ - [JsonApiAnalyticalDashboardLinkage](docs/JsonApiAnalyticalDashboardLinkage.md)
+ - [JsonApiAnalyticalDashboardOut](docs/JsonApiAnalyticalDashboardOut.md)
+ - [JsonApiAnalyticalDashboardOutDocument](docs/JsonApiAnalyticalDashboardOutDocument.md)
+ - [JsonApiAnalyticalDashboardOutIncludes](docs/JsonApiAnalyticalDashboardOutIncludes.md)
+ - [JsonApiAnalyticalDashboardOutList](docs/JsonApiAnalyticalDashboardOutList.md)
+ - [JsonApiAnalyticalDashboardOutRelationships](docs/JsonApiAnalyticalDashboardOutRelationships.md)
+ - [JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards](docs/JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards.md)
+ - [JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins](docs/JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins.md)
+ - [JsonApiAnalyticalDashboardOutRelationshipsDatasets](docs/JsonApiAnalyticalDashboardOutRelationshipsDatasets.md)
+ - [JsonApiAnalyticalDashboardOutRelationshipsFilterContexts](docs/JsonApiAnalyticalDashboardOutRelationshipsFilterContexts.md)
+ - [JsonApiAnalyticalDashboardOutRelationshipsLabels](docs/JsonApiAnalyticalDashboardOutRelationshipsLabels.md)
+ - [JsonApiAnalyticalDashboardOutRelationshipsMetrics](docs/JsonApiAnalyticalDashboardOutRelationshipsMetrics.md)
+ - [JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects](docs/JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects.md)
+ - [JsonApiAnalyticalDashboardOutWithLinks](docs/JsonApiAnalyticalDashboardOutWithLinks.md)
+ - [JsonApiAnalyticalDashboardPatch](docs/JsonApiAnalyticalDashboardPatch.md)
+ - [JsonApiAnalyticalDashboardPatchDocument](docs/JsonApiAnalyticalDashboardPatchDocument.md)
+ - [JsonApiAnalyticalDashboardToManyLinkage](docs/JsonApiAnalyticalDashboardToManyLinkage.md)
+ - [JsonApiApiTokenIn](docs/JsonApiApiTokenIn.md)
+ - [JsonApiApiTokenInDocument](docs/JsonApiApiTokenInDocument.md)
+ - [JsonApiApiTokenOut](docs/JsonApiApiTokenOut.md)
+ - [JsonApiApiTokenOutAttributes](docs/JsonApiApiTokenOutAttributes.md)
+ - [JsonApiApiTokenOutDocument](docs/JsonApiApiTokenOutDocument.md)
+ - [JsonApiApiTokenOutList](docs/JsonApiApiTokenOutList.md)
+ - [JsonApiApiTokenOutWithLinks](docs/JsonApiApiTokenOutWithLinks.md)
+ - [JsonApiAttributeLinkage](docs/JsonApiAttributeLinkage.md)
+ - [JsonApiAttributeOut](docs/JsonApiAttributeOut.md)
+ - [JsonApiAttributeOutAttributes](docs/JsonApiAttributeOutAttributes.md)
+ - [JsonApiAttributeOutDocument](docs/JsonApiAttributeOutDocument.md)
+ - [JsonApiAttributeOutIncludes](docs/JsonApiAttributeOutIncludes.md)
+ - [JsonApiAttributeOutList](docs/JsonApiAttributeOutList.md)
+ - [JsonApiAttributeOutRelationships](docs/JsonApiAttributeOutRelationships.md)
+ - [JsonApiAttributeOutRelationshipsDataset](docs/JsonApiAttributeOutRelationshipsDataset.md)
+ - [JsonApiAttributeOutRelationshipsDefaultView](docs/JsonApiAttributeOutRelationshipsDefaultView.md)
+ - [JsonApiAttributeOutWithLinks](docs/JsonApiAttributeOutWithLinks.md)
+ - [JsonApiAttributeToManyLinkage](docs/JsonApiAttributeToManyLinkage.md)
+ - [JsonApiAttributeToOneLinkage](docs/JsonApiAttributeToOneLinkage.md)
+ - [JsonApiColorPaletteIn](docs/JsonApiColorPaletteIn.md)
+ - [JsonApiColorPaletteInAttributes](docs/JsonApiColorPaletteInAttributes.md)
+ - [JsonApiColorPaletteInDocument](docs/JsonApiColorPaletteInDocument.md)
+ - [JsonApiColorPaletteOut](docs/JsonApiColorPaletteOut.md)
+ - [JsonApiColorPaletteOutDocument](docs/JsonApiColorPaletteOutDocument.md)
+ - [JsonApiColorPaletteOutList](docs/JsonApiColorPaletteOutList.md)
+ - [JsonApiColorPaletteOutWithLinks](docs/JsonApiColorPaletteOutWithLinks.md)
+ - [JsonApiColorPalettePatch](docs/JsonApiColorPalettePatch.md)
+ - [JsonApiColorPalettePatchAttributes](docs/JsonApiColorPalettePatchAttributes.md)
+ - [JsonApiColorPalettePatchDocument](docs/JsonApiColorPalettePatchDocument.md)
+ - [JsonApiCookieSecurityConfigurationIn](docs/JsonApiCookieSecurityConfigurationIn.md)
+ - [JsonApiCookieSecurityConfigurationInAttributes](docs/JsonApiCookieSecurityConfigurationInAttributes.md)
+ - [JsonApiCookieSecurityConfigurationInDocument](docs/JsonApiCookieSecurityConfigurationInDocument.md)
+ - [JsonApiCookieSecurityConfigurationOut](docs/JsonApiCookieSecurityConfigurationOut.md)
+ - [JsonApiCookieSecurityConfigurationOutDocument](docs/JsonApiCookieSecurityConfigurationOutDocument.md)
+ - [JsonApiCookieSecurityConfigurationPatch](docs/JsonApiCookieSecurityConfigurationPatch.md)
+ - [JsonApiCookieSecurityConfigurationPatchDocument](docs/JsonApiCookieSecurityConfigurationPatchDocument.md)
+ - [JsonApiCspDirectiveIn](docs/JsonApiCspDirectiveIn.md)
+ - [JsonApiCspDirectiveInAttributes](docs/JsonApiCspDirectiveInAttributes.md)
+ - [JsonApiCspDirectiveInDocument](docs/JsonApiCspDirectiveInDocument.md)
+ - [JsonApiCspDirectiveOut](docs/JsonApiCspDirectiveOut.md)
+ - [JsonApiCspDirectiveOutDocument](docs/JsonApiCspDirectiveOutDocument.md)
+ - [JsonApiCspDirectiveOutList](docs/JsonApiCspDirectiveOutList.md)
+ - [JsonApiCspDirectiveOutWithLinks](docs/JsonApiCspDirectiveOutWithLinks.md)
+ - [JsonApiCspDirectivePatch](docs/JsonApiCspDirectivePatch.md)
+ - [JsonApiCspDirectivePatchAttributes](docs/JsonApiCspDirectivePatchAttributes.md)
+ - [JsonApiCspDirectivePatchDocument](docs/JsonApiCspDirectivePatchDocument.md)
+ - [JsonApiDashboardPluginIn](docs/JsonApiDashboardPluginIn.md)
+ - [JsonApiDashboardPluginInAttributes](docs/JsonApiDashboardPluginInAttributes.md)
+ - [JsonApiDashboardPluginInDocument](docs/JsonApiDashboardPluginInDocument.md)
+ - [JsonApiDashboardPluginLinkage](docs/JsonApiDashboardPluginLinkage.md)
+ - [JsonApiDashboardPluginOut](docs/JsonApiDashboardPluginOut.md)
+ - [JsonApiDashboardPluginOutDocument](docs/JsonApiDashboardPluginOutDocument.md)
+ - [JsonApiDashboardPluginOutList](docs/JsonApiDashboardPluginOutList.md)
+ - [JsonApiDashboardPluginOutWithLinks](docs/JsonApiDashboardPluginOutWithLinks.md)
+ - [JsonApiDashboardPluginPatch](docs/JsonApiDashboardPluginPatch.md)
+ - [JsonApiDashboardPluginPatchDocument](docs/JsonApiDashboardPluginPatchDocument.md)
+ - [JsonApiDashboardPluginToManyLinkage](docs/JsonApiDashboardPluginToManyLinkage.md)
+ - [JsonApiDataSourceIdentifierOut](docs/JsonApiDataSourceIdentifierOut.md)
+ - [JsonApiDataSourceIdentifierOutAttributes](docs/JsonApiDataSourceIdentifierOutAttributes.md)
+ - [JsonApiDataSourceIdentifierOutDocument](docs/JsonApiDataSourceIdentifierOutDocument.md)
+ - [JsonApiDataSourceIdentifierOutList](docs/JsonApiDataSourceIdentifierOutList.md)
+ - [JsonApiDataSourceIdentifierOutMeta](docs/JsonApiDataSourceIdentifierOutMeta.md)
+ - [JsonApiDataSourceIdentifierOutWithLinks](docs/JsonApiDataSourceIdentifierOutWithLinks.md)
+ - [JsonApiDataSourceIn](docs/JsonApiDataSourceIn.md)
+ - [JsonApiDataSourceInAttributes](docs/JsonApiDataSourceInAttributes.md)
+ - [JsonApiDataSourceInAttributesParametersInner](docs/JsonApiDataSourceInAttributesParametersInner.md)
+ - [JsonApiDataSourceInDocument](docs/JsonApiDataSourceInDocument.md)
+ - [JsonApiDataSourceOut](docs/JsonApiDataSourceOut.md)
+ - [JsonApiDataSourceOutAttributes](docs/JsonApiDataSourceOutAttributes.md)
+ - [JsonApiDataSourceOutDocument](docs/JsonApiDataSourceOutDocument.md)
+ - [JsonApiDataSourceOutList](docs/JsonApiDataSourceOutList.md)
+ - [JsonApiDataSourceOutWithLinks](docs/JsonApiDataSourceOutWithLinks.md)
+ - [JsonApiDataSourcePatch](docs/JsonApiDataSourcePatch.md)
+ - [JsonApiDataSourcePatchAttributes](docs/JsonApiDataSourcePatchAttributes.md)
+ - [JsonApiDataSourcePatchDocument](docs/JsonApiDataSourcePatchDocument.md)
+ - [JsonApiDataSourceTableOut](docs/JsonApiDataSourceTableOut.md)
+ - [JsonApiDataSourceTableOutAttributes](docs/JsonApiDataSourceTableOutAttributes.md)
+ - [JsonApiDataSourceTableOutAttributesColumnsInner](docs/JsonApiDataSourceTableOutAttributesColumnsInner.md)
+ - [JsonApiDataSourceTableOutDocument](docs/JsonApiDataSourceTableOutDocument.md)
+ - [JsonApiDataSourceTableOutList](docs/JsonApiDataSourceTableOutList.md)
+ - [JsonApiDataSourceTableOutWithLinks](docs/JsonApiDataSourceTableOutWithLinks.md)
+ - [JsonApiDatasetLinkage](docs/JsonApiDatasetLinkage.md)
+ - [JsonApiDatasetOut](docs/JsonApiDatasetOut.md)
+ - [JsonApiDatasetOutAttributes](docs/JsonApiDatasetOutAttributes.md)
+ - [JsonApiDatasetOutAttributesGrainInner](docs/JsonApiDatasetOutAttributesGrainInner.md)
+ - [JsonApiDatasetOutAttributesReferencePropertiesInner](docs/JsonApiDatasetOutAttributesReferencePropertiesInner.md)
+ - [JsonApiDatasetOutDocument](docs/JsonApiDatasetOutDocument.md)
+ - [JsonApiDatasetOutIncludes](docs/JsonApiDatasetOutIncludes.md)
+ - [JsonApiDatasetOutList](docs/JsonApiDatasetOutList.md)
+ - [JsonApiDatasetOutRelationships](docs/JsonApiDatasetOutRelationships.md)
+ - [JsonApiDatasetOutRelationshipsAttributes](docs/JsonApiDatasetOutRelationshipsAttributes.md)
+ - [JsonApiDatasetOutRelationshipsFacts](docs/JsonApiDatasetOutRelationshipsFacts.md)
+ - [JsonApiDatasetOutWithLinks](docs/JsonApiDatasetOutWithLinks.md)
+ - [JsonApiDatasetToManyLinkage](docs/JsonApiDatasetToManyLinkage.md)
+ - [JsonApiDatasetToOneLinkage](docs/JsonApiDatasetToOneLinkage.md)
+ - [JsonApiEntitlementOut](docs/JsonApiEntitlementOut.md)
+ - [JsonApiEntitlementOutAttributes](docs/JsonApiEntitlementOutAttributes.md)
+ - [JsonApiEntitlementOutDocument](docs/JsonApiEntitlementOutDocument.md)
+ - [JsonApiEntitlementOutList](docs/JsonApiEntitlementOutList.md)
+ - [JsonApiEntitlementOutWithLinks](docs/JsonApiEntitlementOutWithLinks.md)
+ - [JsonApiFactLinkage](docs/JsonApiFactLinkage.md)
+ - [JsonApiFactOut](docs/JsonApiFactOut.md)
+ - [JsonApiFactOutAttributes](docs/JsonApiFactOutAttributes.md)
+ - [JsonApiFactOutDocument](docs/JsonApiFactOutDocument.md)
+ - [JsonApiFactOutList](docs/JsonApiFactOutList.md)
+ - [JsonApiFactOutRelationships](docs/JsonApiFactOutRelationships.md)
+ - [JsonApiFactOutWithLinks](docs/JsonApiFactOutWithLinks.md)
+ - [JsonApiFactToManyLinkage](docs/JsonApiFactToManyLinkage.md)
+ - [JsonApiFilterContextIn](docs/JsonApiFilterContextIn.md)
+ - [JsonApiFilterContextInDocument](docs/JsonApiFilterContextInDocument.md)
+ - [JsonApiFilterContextLinkage](docs/JsonApiFilterContextLinkage.md)
+ - [JsonApiFilterContextOut](docs/JsonApiFilterContextOut.md)
+ - [JsonApiFilterContextOutDocument](docs/JsonApiFilterContextOutDocument.md)
+ - [JsonApiFilterContextOutIncludes](docs/JsonApiFilterContextOutIncludes.md)
+ - [JsonApiFilterContextOutList](docs/JsonApiFilterContextOutList.md)
+ - [JsonApiFilterContextOutRelationships](docs/JsonApiFilterContextOutRelationships.md)
+ - [JsonApiFilterContextOutWithLinks](docs/JsonApiFilterContextOutWithLinks.md)
+ - [JsonApiFilterContextPatch](docs/JsonApiFilterContextPatch.md)
+ - [JsonApiFilterContextPatchDocument](docs/JsonApiFilterContextPatchDocument.md)
+ - [JsonApiFilterContextToManyLinkage](docs/JsonApiFilterContextToManyLinkage.md)
+ - [JsonApiLabelLinkage](docs/JsonApiLabelLinkage.md)
+ - [JsonApiLabelOut](docs/JsonApiLabelOut.md)
+ - [JsonApiLabelOutAttributes](docs/JsonApiLabelOutAttributes.md)
+ - [JsonApiLabelOutDocument](docs/JsonApiLabelOutDocument.md)
+ - [JsonApiLabelOutList](docs/JsonApiLabelOutList.md)
+ - [JsonApiLabelOutRelationships](docs/JsonApiLabelOutRelationships.md)
+ - [JsonApiLabelOutRelationshipsAttribute](docs/JsonApiLabelOutRelationshipsAttribute.md)
+ - [JsonApiLabelOutWithLinks](docs/JsonApiLabelOutWithLinks.md)
+ - [JsonApiLabelToManyLinkage](docs/JsonApiLabelToManyLinkage.md)
+ - [JsonApiLabelToOneLinkage](docs/JsonApiLabelToOneLinkage.md)
+ - [JsonApiMetricIn](docs/JsonApiMetricIn.md)
+ - [JsonApiMetricInAttributes](docs/JsonApiMetricInAttributes.md)
+ - [JsonApiMetricInAttributesContent](docs/JsonApiMetricInAttributesContent.md)
+ - [JsonApiMetricInDocument](docs/JsonApiMetricInDocument.md)
+ - [JsonApiMetricLinkage](docs/JsonApiMetricLinkage.md)
+ - [JsonApiMetricOut](docs/JsonApiMetricOut.md)
+ - [JsonApiMetricOutDocument](docs/JsonApiMetricOutDocument.md)
+ - [JsonApiMetricOutIncludes](docs/JsonApiMetricOutIncludes.md)
+ - [JsonApiMetricOutList](docs/JsonApiMetricOutList.md)
+ - [JsonApiMetricOutRelationships](docs/JsonApiMetricOutRelationships.md)
+ - [JsonApiMetricOutWithLinks](docs/JsonApiMetricOutWithLinks.md)
+ - [JsonApiMetricPatch](docs/JsonApiMetricPatch.md)
+ - [JsonApiMetricPatchAttributes](docs/JsonApiMetricPatchAttributes.md)
+ - [JsonApiMetricPatchDocument](docs/JsonApiMetricPatchDocument.md)
+ - [JsonApiMetricToManyLinkage](docs/JsonApiMetricToManyLinkage.md)
+ - [JsonApiOrganizationIn](docs/JsonApiOrganizationIn.md)
+ - [JsonApiOrganizationInAttributes](docs/JsonApiOrganizationInAttributes.md)
+ - [JsonApiOrganizationInDocument](docs/JsonApiOrganizationInDocument.md)
+ - [JsonApiOrganizationOut](docs/JsonApiOrganizationOut.md)
+ - [JsonApiOrganizationOutAttributes](docs/JsonApiOrganizationOutAttributes.md)
+ - [JsonApiOrganizationOutDocument](docs/JsonApiOrganizationOutDocument.md)
+ - [JsonApiOrganizationOutIncludes](docs/JsonApiOrganizationOutIncludes.md)
+ - [JsonApiOrganizationOutMeta](docs/JsonApiOrganizationOutMeta.md)
+ - [JsonApiOrganizationOutRelationships](docs/JsonApiOrganizationOutRelationships.md)
+ - [JsonApiOrganizationOutRelationshipsBootstrapUser](docs/JsonApiOrganizationOutRelationshipsBootstrapUser.md)
+ - [JsonApiOrganizationOutRelationshipsBootstrapUserGroup](docs/JsonApiOrganizationOutRelationshipsBootstrapUserGroup.md)
+ - [JsonApiOrganizationPatch](docs/JsonApiOrganizationPatch.md)
+ - [JsonApiOrganizationPatchDocument](docs/JsonApiOrganizationPatchDocument.md)
+ - [JsonApiOrganizationSettingIn](docs/JsonApiOrganizationSettingIn.md)
+ - [JsonApiOrganizationSettingInAttributes](docs/JsonApiOrganizationSettingInAttributes.md)
+ - [JsonApiOrganizationSettingInDocument](docs/JsonApiOrganizationSettingInDocument.md)
+ - [JsonApiOrganizationSettingOut](docs/JsonApiOrganizationSettingOut.md)
+ - [JsonApiOrganizationSettingOutDocument](docs/JsonApiOrganizationSettingOutDocument.md)
+ - [JsonApiOrganizationSettingOutList](docs/JsonApiOrganizationSettingOutList.md)
+ - [JsonApiOrganizationSettingOutWithLinks](docs/JsonApiOrganizationSettingOutWithLinks.md)
+ - [JsonApiOrganizationSettingPatch](docs/JsonApiOrganizationSettingPatch.md)
+ - [JsonApiOrganizationSettingPatchDocument](docs/JsonApiOrganizationSettingPatchDocument.md)
+ - [JsonApiThemeIn](docs/JsonApiThemeIn.md)
+ - [JsonApiThemeInDocument](docs/JsonApiThemeInDocument.md)
+ - [JsonApiThemeOut](docs/JsonApiThemeOut.md)
+ - [JsonApiThemeOutDocument](docs/JsonApiThemeOutDocument.md)
+ - [JsonApiThemeOutList](docs/JsonApiThemeOutList.md)
+ - [JsonApiThemeOutWithLinks](docs/JsonApiThemeOutWithLinks.md)
+ - [JsonApiThemePatch](docs/JsonApiThemePatch.md)
+ - [JsonApiThemePatchDocument](docs/JsonApiThemePatchDocument.md)
+ - [JsonApiUserGroupIn](docs/JsonApiUserGroupIn.md)
+ - [JsonApiUserGroupInDocument](docs/JsonApiUserGroupInDocument.md)
+ - [JsonApiUserGroupInRelationships](docs/JsonApiUserGroupInRelationships.md)
+ - [JsonApiUserGroupInRelationshipsParents](docs/JsonApiUserGroupInRelationshipsParents.md)
+ - [JsonApiUserGroupLinkage](docs/JsonApiUserGroupLinkage.md)
+ - [JsonApiUserGroupOut](docs/JsonApiUserGroupOut.md)
+ - [JsonApiUserGroupOutDocument](docs/JsonApiUserGroupOutDocument.md)
+ - [JsonApiUserGroupOutList](docs/JsonApiUserGroupOutList.md)
+ - [JsonApiUserGroupOutWithLinks](docs/JsonApiUserGroupOutWithLinks.md)
+ - [JsonApiUserGroupPatch](docs/JsonApiUserGroupPatch.md)
+ - [JsonApiUserGroupPatchDocument](docs/JsonApiUserGroupPatchDocument.md)
+ - [JsonApiUserGroupToManyLinkage](docs/JsonApiUserGroupToManyLinkage.md)
+ - [JsonApiUserGroupToOneLinkage](docs/JsonApiUserGroupToOneLinkage.md)
+ - [JsonApiUserIn](docs/JsonApiUserIn.md)
+ - [JsonApiUserInAttributes](docs/JsonApiUserInAttributes.md)
+ - [JsonApiUserInDocument](docs/JsonApiUserInDocument.md)
+ - [JsonApiUserInRelationships](docs/JsonApiUserInRelationships.md)
+ - [JsonApiUserLinkage](docs/JsonApiUserLinkage.md)
+ - [JsonApiUserOut](docs/JsonApiUserOut.md)
+ - [JsonApiUserOutDocument](docs/JsonApiUserOutDocument.md)
+ - [JsonApiUserOutList](docs/JsonApiUserOutList.md)
+ - [JsonApiUserOutWithLinks](docs/JsonApiUserOutWithLinks.md)
+ - [JsonApiUserPatch](docs/JsonApiUserPatch.md)
+ - [JsonApiUserPatchDocument](docs/JsonApiUserPatchDocument.md)
+ - [JsonApiUserSettingIn](docs/JsonApiUserSettingIn.md)
+ - [JsonApiUserSettingInDocument](docs/JsonApiUserSettingInDocument.md)
+ - [JsonApiUserSettingOut](docs/JsonApiUserSettingOut.md)
+ - [JsonApiUserSettingOutDocument](docs/JsonApiUserSettingOutDocument.md)
+ - [JsonApiUserSettingOutList](docs/JsonApiUserSettingOutList.md)
+ - [JsonApiUserSettingOutWithLinks](docs/JsonApiUserSettingOutWithLinks.md)
+ - [JsonApiUserToOneLinkage](docs/JsonApiUserToOneLinkage.md)
+ - [JsonApiVisualizationObjectIn](docs/JsonApiVisualizationObjectIn.md)
+ - [JsonApiVisualizationObjectInDocument](docs/JsonApiVisualizationObjectInDocument.md)
+ - [JsonApiVisualizationObjectLinkage](docs/JsonApiVisualizationObjectLinkage.md)
+ - [JsonApiVisualizationObjectOut](docs/JsonApiVisualizationObjectOut.md)
+ - [JsonApiVisualizationObjectOutDocument](docs/JsonApiVisualizationObjectOutDocument.md)
+ - [JsonApiVisualizationObjectOutList](docs/JsonApiVisualizationObjectOutList.md)
+ - [JsonApiVisualizationObjectOutWithLinks](docs/JsonApiVisualizationObjectOutWithLinks.md)
+ - [JsonApiVisualizationObjectPatch](docs/JsonApiVisualizationObjectPatch.md)
+ - [JsonApiVisualizationObjectPatchDocument](docs/JsonApiVisualizationObjectPatchDocument.md)
+ - [JsonApiVisualizationObjectToManyLinkage](docs/JsonApiVisualizationObjectToManyLinkage.md)
+ - [JsonApiWorkspaceDataFilterIn](docs/JsonApiWorkspaceDataFilterIn.md)
+ - [JsonApiWorkspaceDataFilterInAttributes](docs/JsonApiWorkspaceDataFilterInAttributes.md)
+ - [JsonApiWorkspaceDataFilterInDocument](docs/JsonApiWorkspaceDataFilterInDocument.md)
+ - [JsonApiWorkspaceDataFilterInRelationships](docs/JsonApiWorkspaceDataFilterInRelationships.md)
+ - [JsonApiWorkspaceDataFilterInRelationshipsFilterSettings](docs/JsonApiWorkspaceDataFilterInRelationshipsFilterSettings.md)
+ - [JsonApiWorkspaceDataFilterLinkage](docs/JsonApiWorkspaceDataFilterLinkage.md)
+ - [JsonApiWorkspaceDataFilterOut](docs/JsonApiWorkspaceDataFilterOut.md)
+ - [JsonApiWorkspaceDataFilterOutDocument](docs/JsonApiWorkspaceDataFilterOutDocument.md)
+ - [JsonApiWorkspaceDataFilterOutList](docs/JsonApiWorkspaceDataFilterOutList.md)
+ - [JsonApiWorkspaceDataFilterOutWithLinks](docs/JsonApiWorkspaceDataFilterOutWithLinks.md)
+ - [JsonApiWorkspaceDataFilterPatch](docs/JsonApiWorkspaceDataFilterPatch.md)
+ - [JsonApiWorkspaceDataFilterPatchDocument](docs/JsonApiWorkspaceDataFilterPatchDocument.md)
+ - [JsonApiWorkspaceDataFilterSettingLinkage](docs/JsonApiWorkspaceDataFilterSettingLinkage.md)
+ - [JsonApiWorkspaceDataFilterSettingOut](docs/JsonApiWorkspaceDataFilterSettingOut.md)
+ - [JsonApiWorkspaceDataFilterSettingOutAttributes](docs/JsonApiWorkspaceDataFilterSettingOutAttributes.md)
+ - [JsonApiWorkspaceDataFilterSettingOutDocument](docs/JsonApiWorkspaceDataFilterSettingOutDocument.md)
+ - [JsonApiWorkspaceDataFilterSettingOutList](docs/JsonApiWorkspaceDataFilterSettingOutList.md)
+ - [JsonApiWorkspaceDataFilterSettingOutRelationships](docs/JsonApiWorkspaceDataFilterSettingOutRelationships.md)
+ - [JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter](docs/JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter.md)
+ - [JsonApiWorkspaceDataFilterSettingOutWithLinks](docs/JsonApiWorkspaceDataFilterSettingOutWithLinks.md)
+ - [JsonApiWorkspaceDataFilterSettingToManyLinkage](docs/JsonApiWorkspaceDataFilterSettingToManyLinkage.md)
+ - [JsonApiWorkspaceDataFilterToOneLinkage](docs/JsonApiWorkspaceDataFilterToOneLinkage.md)
+ - [JsonApiWorkspaceIn](docs/JsonApiWorkspaceIn.md)
+ - [JsonApiWorkspaceInAttributes](docs/JsonApiWorkspaceInAttributes.md)
+ - [JsonApiWorkspaceInDocument](docs/JsonApiWorkspaceInDocument.md)
+ - [JsonApiWorkspaceInRelationships](docs/JsonApiWorkspaceInRelationships.md)
+ - [JsonApiWorkspaceInRelationshipsParent](docs/JsonApiWorkspaceInRelationshipsParent.md)
+ - [JsonApiWorkspaceLinkage](docs/JsonApiWorkspaceLinkage.md)
+ - [JsonApiWorkspaceOut](docs/JsonApiWorkspaceOut.md)
+ - [JsonApiWorkspaceOutDocument](docs/JsonApiWorkspaceOutDocument.md)
+ - [JsonApiWorkspaceOutList](docs/JsonApiWorkspaceOutList.md)
+ - [JsonApiWorkspaceOutMeta](docs/JsonApiWorkspaceOutMeta.md)
+ - [JsonApiWorkspaceOutMetaConfig](docs/JsonApiWorkspaceOutMetaConfig.md)
+ - [JsonApiWorkspaceOutWithLinks](docs/JsonApiWorkspaceOutWithLinks.md)
+ - [JsonApiWorkspacePatch](docs/JsonApiWorkspacePatch.md)
+ - [JsonApiWorkspacePatchDocument](docs/JsonApiWorkspacePatchDocument.md)
+ - [JsonApiWorkspaceSettingIn](docs/JsonApiWorkspaceSettingIn.md)
+ - [JsonApiWorkspaceSettingInDocument](docs/JsonApiWorkspaceSettingInDocument.md)
+ - [JsonApiWorkspaceSettingOut](docs/JsonApiWorkspaceSettingOut.md)
+ - [JsonApiWorkspaceSettingOutDocument](docs/JsonApiWorkspaceSettingOutDocument.md)
+ - [JsonApiWorkspaceSettingOutList](docs/JsonApiWorkspaceSettingOutList.md)
+ - [JsonApiWorkspaceSettingOutWithLinks](docs/JsonApiWorkspaceSettingOutWithLinks.md)
+ - [JsonApiWorkspaceSettingPatch](docs/JsonApiWorkspaceSettingPatch.md)
+ - [JsonApiWorkspaceSettingPatchDocument](docs/JsonApiWorkspaceSettingPatchDocument.md)
+ - [JsonApiWorkspaceToOneLinkage](docs/JsonApiWorkspaceToOneLinkage.md)
+ - [LabelIdentifier](docs/LabelIdentifier.md)
+ - [ListLinks](docs/ListLinks.md)
+ - [ListLinksAllOf](docs/ListLinksAllOf.md)
+ - [MeasureDefinition](docs/MeasureDefinition.md)
+ - [MeasureExecutionResultHeader](docs/MeasureExecutionResultHeader.md)
+ - [MeasureGroupHeaders](docs/MeasureGroupHeaders.md)
+ - [MeasureHeaderOut](docs/MeasureHeaderOut.md)
+ - [MeasureItem](docs/MeasureItem.md)
+ - [MeasureResultHeader](docs/MeasureResultHeader.md)
+ - [MeasureValueFilter](docs/MeasureValueFilter.md)
+ - [NegativeAttributeFilter](docs/NegativeAttributeFilter.md)
+ - [NegativeAttributeFilterNegativeAttributeFilter](docs/NegativeAttributeFilterNegativeAttributeFilter.md)
+ - [ObjectLinks](docs/ObjectLinks.md)
+ - [ObjectLinksContainer](docs/ObjectLinksContainer.md)
+ - [Paging](docs/Paging.md)
+ - [Parameter](docs/Parameter.md)
+ - [PlatformUsage](docs/PlatformUsage.md)
+ - [PlatformUsageRequest](docs/PlatformUsageRequest.md)
+ - [PopDataset](docs/PopDataset.md)
+ - [PopDatasetMeasureDefinition](docs/PopDatasetMeasureDefinition.md)
+ - [PopDatasetMeasureDefinitionPreviousPeriodMeasure](docs/PopDatasetMeasureDefinitionPreviousPeriodMeasure.md)
+ - [PopDate](docs/PopDate.md)
+ - [PopDateMeasureDefinition](docs/PopDateMeasureDefinition.md)
+ - [PopDateMeasureDefinitionOverPeriodMeasure](docs/PopDateMeasureDefinitionOverPeriodMeasure.md)
+ - [PopMeasureDefinition](docs/PopMeasureDefinition.md)
+ - [PositiveAttributeFilter](docs/PositiveAttributeFilter.md)
+ - [PositiveAttributeFilterPositiveAttributeFilter](docs/PositiveAttributeFilterPositiveAttributeFilter.md)
+ - [RangeMeasureValueFilter](docs/RangeMeasureValueFilter.md)
+ - [RangeMeasureValueFilterRangeMeasureValueFilter](docs/RangeMeasureValueFilterRangeMeasureValueFilter.md)
+ - [RankingFilter](docs/RankingFilter.md)
+ - [RankingFilterRankingFilter](docs/RankingFilterRankingFilter.md)
+ - [ReferenceIdentifier](docs/ReferenceIdentifier.md)
+ - [RelativeDateFilter](docs/RelativeDateFilter.md)
+ - [RelativeDateFilterRelativeDateFilter](docs/RelativeDateFilterRelativeDateFilter.md)
+ - [ResolveSettingsRequest](docs/ResolveSettingsRequest.md)
+ - [RestApiIdentifier](docs/RestApiIdentifier.md)
+ - [ResultCacheMetadata](docs/ResultCacheMetadata.md)
+ - [ResultDimension](docs/ResultDimension.md)
+ - [ResultDimensionHeader](docs/ResultDimensionHeader.md)
+ - [ResultSpec](docs/ResultSpec.md)
+ - [ScanRequest](docs/ScanRequest.md)
+ - [ScanResultPdm](docs/ScanResultPdm.md)
+ - [Settings](docs/Settings.md)
+ - [SimpleMeasureDefinition](docs/SimpleMeasureDefinition.md)
+ - [SimpleMeasureDefinitionMeasure](docs/SimpleMeasureDefinitionMeasure.md)
+ - [SortKey](docs/SortKey.md)
+ - [SortKeyAttribute](docs/SortKeyAttribute.md)
+ - [SortKeyAttributeAttribute](docs/SortKeyAttributeAttribute.md)
+ - [SortKeyTotal](docs/SortKeyTotal.md)
+ - [SortKeyTotalTotal](docs/SortKeyTotalTotal.md)
+ - [SortKeyValue](docs/SortKeyValue.md)
+ - [SortKeyValueValue](docs/SortKeyValueValue.md)
+ - [TableWarning](docs/TableWarning.md)
+ - [TabularExportRequest](docs/TabularExportRequest.md)
+ - [TabularExportResult](docs/TabularExportResult.md)
+ - [TestDefinitionRequest](docs/TestDefinitionRequest.md)
+ - [TestRequest](docs/TestRequest.md)
+ - [TestResponse](docs/TestResponse.md)
+ - [Total](docs/Total.md)
+ - [TotalDimension](docs/TotalDimension.md)
+ - [TotalExecutionResultHeader](docs/TotalExecutionResultHeader.md)
+ - [TotalResultHeader](docs/TotalResultHeader.md)
+ - [UserGroupIdentifier](docs/UserGroupIdentifier.md)
+ - [WorkspaceIdentifier](docs/WorkspaceIdentifier.md)
+
+
+## Documentation For Authorization
+
+ All endpoints do not require authorization.
+
+## Author
+
+support@gooddata.com
+
+
+## Notes for Large OpenAPI documents
+If the OpenAPI document is large, imports in gooddata_api_client.apis and gooddata_api_client.models may fail with a
+RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:
+
+Solution 1:
+Use specific imports for apis and models like:
+- `from gooddata_api_client.api.default_api import DefaultApi`
+- `from gooddata_api_client.model.pet import Pet`
+
+Solution 2:
+Before importing the package, adjust the maximum recursion limit as shown below:
+```
+import sys
+sys.setrecursionlimit(1500)
+import gooddata_api_client
+from gooddata_api_client.apis import *
+from gooddata_api_client.models import *
+```
+
diff --git a/gooddata-api-client/docs/AFM.md b/gooddata-api-client/docs/AFM.md
new file mode 100644
index 000000000..19b230b09
--- /dev/null
+++ b/gooddata-api-client/docs/AFM.md
@@ -0,0 +1,16 @@
+# AFM
+
+Top level executable entity. Combination of [A]ttributes, [F]ilters & [M]etrics.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**[AttributeItem]**](AttributeItem.md) | Attributes to be used in the computation. |
+**filters** | [**[FilterDefinition]**](FilterDefinition.md) | Various filter types to filter execution result. |
+**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]
+
+[[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/AbsoluteDateFilter.md b/gooddata-api-client/docs/AbsoluteDateFilter.md
new file mode 100644
index 000000000..9041702f4
--- /dev/null
+++ b/gooddata-api-client/docs/AbsoluteDateFilter.md
@@ -0,0 +1,13 @@
+# AbsoluteDateFilter
+
+A datetime filter specifying exact from and to values.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**absolute_date_filter** | [**AbsoluteDateFilterAbsoluteDateFilter**](AbsoluteDateFilterAbsoluteDateFilter.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/AbsoluteDateFilterAbsoluteDateFilter.md b/gooddata-api-client/docs/AbsoluteDateFilterAbsoluteDateFilter.md
new file mode 100644
index 000000000..f5b7d1af6
--- /dev/null
+++ b/gooddata-api-client/docs/AbsoluteDateFilterAbsoluteDateFilter.md
@@ -0,0 +1,15 @@
+# AbsoluteDateFilterAbsoluteDateFilter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dataset** | [**AfmObjectIdentifierDataset**](AfmObjectIdentifierDataset.md) | |
+**_from** | **str** | |
+**to** | **str** | |
+**apply_on_result** | **bool** | | [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/AbstractMeasureValueFilter.md b/gooddata-api-client/docs/AbstractMeasureValueFilter.md
new file mode 100644
index 000000000..d5a719c6e
--- /dev/null
+++ b/gooddata-api-client/docs/AbstractMeasureValueFilter.md
@@ -0,0 +1,14 @@
+# AbstractMeasureValueFilter
+
+
+## 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]
+**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/ActionsApi.md b/gooddata-api-client/docs/ActionsApi.md
new file mode 100644
index 000000000..062b1c8d8
--- /dev/null
+++ b/gooddata-api-client/docs/ActionsApi.md
@@ -0,0 +1,1969 @@
+# gooddata_api_client.ActionsApi
+
+All URIs are relative to *http://localhost*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**all_platform_usage**](ActionsApi.md#all_platform_usage) | **GET** /api/v1/actions/collectUsage | Info about the platform usage.
+[**compute_label_elements_post**](ActionsApi.md#compute_label_elements_post) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/collectLabelElements | Listing of label values. The resulting data are limited by the static platform limit to the maximum of 10000 rows.
+[**compute_report**](ActionsApi.md#compute_report) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute | Executes analytical request and returns link to the result
+[**compute_valid_objects**](ActionsApi.md#compute_valid_objects) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/computeValidObjects | Valid objects
+[**create_tabular_export**](ActionsApi.md#create_tabular_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/tabular | Create tabular export request
+[**explain_afm**](ActionsApi.md#explain_afm) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/explain | AFM explain resource.
+[**generate_logical_model**](ActionsApi.md#generate_logical_model) | **POST** /api/v1/actions/dataSources/{dataSourceId}/generateLogicalModel | Generate logical data model (LDM) from physical data model (PDM)
+[**get_data_source_schemata**](ActionsApi.md#get_data_source_schemata) | **GET** /api/v1/actions/dataSources/{dataSourceId}/scanSchemata | Get a list of schema names of a database
+[**get_dependent_entities_graph**](ActionsApi.md#get_dependent_entities_graph) | **GET** /api/v1/actions/workspaces/{workspaceId}/dependentEntitiesGraph | Computes the dependent entities graph
+[**get_dependent_entities_graph_from_entry_points**](ActionsApi.md#get_dependent_entities_graph_from_entry_points) | **POST** /api/v1/actions/workspaces/{workspaceId}/dependentEntitiesGraph | Computes the dependent entities graph from given entry points
+[**get_tabular_export**](ActionsApi.md#get_tabular_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/tabular/{exportId} | Retrieve exported files
+[**particular_platform_usage**](ActionsApi.md#particular_platform_usage) | **POST** /api/v1/actions/collectUsage | Info about the platform usage for particular items.
+[**register_upload_notification**](ActionsApi.md#register_upload_notification) | **POST** /api/v1/actions/dataSources/{dataSourceId}/uploadNotification | Register an upload notification
+[**resolve_all_entitlements**](ActionsApi.md#resolve_all_entitlements) | **GET** /api/v1/actions/resolveEntitlements | Values for all public entitlements.
+[**resolve_all_settings_without_workspace**](ActionsApi.md#resolve_all_settings_without_workspace) | **GET** /api/v1/actions/resolveSettings | Values for all settings without workspace.
+[**resolve_requested_entitlements**](ActionsApi.md#resolve_requested_entitlements) | **POST** /api/v1/actions/resolveEntitlements | Values for requested public entitlements.
+[**resolve_settings_without_workspace**](ActionsApi.md#resolve_settings_without_workspace) | **POST** /api/v1/actions/resolveSettings | Values for selected settings without workspace.
+[**retrieve_execution_metadata**](ActionsApi.md#retrieve_execution_metadata) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId}/metadata | Get a single execution result's metadata.
+[**retrieve_result**](ActionsApi.md#retrieve_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId} | Get a single execution result
+[**scan_data_source**](ActionsApi.md#scan_data_source) | **POST** /api/v1/actions/dataSources/{dataSourceId}/scan | Scan a database to get a physical data model (PDM)
+[**test_data_source**](ActionsApi.md#test_data_source) | **POST** /api/v1/actions/dataSources/{dataSourceId}/test | Test data source connection by data source id
+[**test_data_source_definition**](ActionsApi.md#test_data_source_definition) | **POST** /api/v1/actions/dataSource/test | Test connection by data source definition
+[**workspace_resolve_all_settings**](ActionsApi.md#workspace_resolve_all_settings) | **GET** /api/v1/actions/workspaces/{workspaceId}/resolveSettings | Values for all settings.
+[**workspace_resolve_settings**](ActionsApi.md#workspace_resolve_settings) | **POST** /api/v1/actions/workspaces/{workspaceId}/resolveSettings | Values for selected settings.
+
+
+# **all_platform_usage**
+> [PlatformUsage] all_platform_usage()
+
+Info about the platform usage.
+
+Provides information about platform usage, like amount of users, workspaces, ...
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.platform_usage import PlatformUsage
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Info about the platform usage.
+ api_response = api_instance.all_platform_usage()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->all_platform_usage: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**[PlatformUsage]**](PlatformUsage.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **compute_label_elements_post**
+> ElementsResponse compute_label_elements_post(workspace_id, elements_request)
+
+Listing of label values. The resulting data are limited by the static platform limit to the maximum of 10000 rows.
+
+Returns paged list of elements (values) of given label satisfying given filtering criteria.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.elements_request import ElementsRequest
+from gooddata_api_client.model.elements_response import ElementsResponse
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier
+ elements_request = ElementsRequest(
+ complement_filter=False,
+ data_sampling_percentage=100,
+ exact_filter=[
+ "exact_filter_example",
+ ],
+ exclude_primary_label=False,
+ filter_by=FilterBy(
+ label_type="REQUESTED",
+ ),
+ label="label_example",
+ pattern_filter="pattern_filter_example",
+ sort_order="ASC",
+ ) # ElementsRequest |
+ offset = 0 # int | Request page with this offset. Must be positive integer. The API is limited to the maximum of 10000 items. Therefore this parameter is limited to this number as well. (optional) if omitted the server will use the default value of 0
+ limit = 1000 # int | Return only this number of items. Must be positive integer. The API is limited to the maximum of 10000 items. Therefore this parameter is limited to this number as well. (optional) if omitted the server will use the default value of 1000
+ skip_cache = False # bool | Ignore all caches during execution of current request. (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Listing of label values. The resulting data are limited by the static platform limit to the maximum of 10000 rows.
+ api_response = api_instance.compute_label_elements_post(workspace_id, elements_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->compute_label_elements_post: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ # Listing of label values. The resulting data are limited by the static platform limit to the maximum of 10000 rows.
+ api_response = api_instance.compute_label_elements_post(workspace_id, elements_request, offset=offset, limit=limit, skip_cache=skip_cache)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->compute_label_elements_post: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| Workspace identifier |
+ **elements_request** | [**ElementsRequest**](ElementsRequest.md)| |
+ **offset** | **int**| Request page with this offset. Must be positive integer. The API is limited to the maximum of 10000 items. Therefore this parameter is limited to this number as well. | [optional] if omitted the server will use the default value of 0
+ **limit** | **int**| Return only this number of items. Must be positive integer. The API is limited to the maximum of 10000 items. Therefore this parameter is limited to this number as well. | [optional] if omitted the server will use the default value of 1000
+ **skip_cache** | **bool**| Ignore all caches during execution of current request. | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**ElementsResponse**](ElementsResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | List of label values. | - |
+
+[[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)
+
+# **compute_report**
+> AfmExecutionResponse compute_report(workspace_id, afm_execution)
+
+Executes analytical request and returns link to the result
+
+AFM is a combination of attributes, measures and filters that describe a query you want to execute.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.afm_execution_response import AfmExecutionResponse
+from gooddata_api_client.model.afm_execution import AfmExecution
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier
+ afm_execution = AfmExecution(
+ execution=AFM(
+ attributes=[
+ AttributeItem(
+ label=AfmObjectIdentifierLabel(
+ identifier=AfmObjectIdentifierLabelIdentifier(
+ id="sample_item.price",
+ type="label",
+ ),
+ ),
+ local_identifier="2",
+ ),
+ ],
+ aux_measures=[
+ MeasureItem(
+ definition=MeasureDefinition(),
+ local_identifier="metric_1",
+ ),
+ ],
+ filters=[
+ FilterDefinition(),
+ ],
+ measures=[
+ MeasureItem(
+ definition=MeasureDefinition(),
+ local_identifier="metric_1",
+ ),
+ ],
+ ),
+ result_spec=ResultSpec(
+ dimensions=[
+ Dimension(
+ item_identifiers=["attribute_1","measureGroup"],
+ local_identifier="firstDimension",
+ sorting=[
+ SortKey(),
+ ],
+ ),
+ ],
+ totals=[
+ Total(
+ function="SUM",
+ local_identifier="firstTotal",
+ metric="metric_1",
+ total_dimensions=[
+ TotalDimension(
+ dimension_identifier="firstDimension",
+ total_dimension_items=["measureGroup"],
+ ),
+ ],
+ ),
+ ],
+ ),
+ settings=ExecutionSettings(
+ data_sampling_percentage=0,
+ ),
+ ) # AfmExecution |
+ skip_cache = False # bool | Ignore all caches during execution of current request. (optional) if omitted the server will use the default value of False
+ timestamp = "2020-06-03T10:15:30+01:00" # str | (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Executes analytical request and returns link to the result
+ api_response = api_instance.compute_report(workspace_id, afm_execution)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->compute_report: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ # Executes analytical request and returns link to the result
+ api_response = api_instance.compute_report(workspace_id, afm_execution, skip_cache=skip_cache, timestamp=timestamp)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->compute_report: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| Workspace identifier |
+ **afm_execution** | [**AfmExecution**](AfmExecution.md)| |
+ **skip_cache** | **bool**| Ignore all caches during execution of current request. | [optional] if omitted the server will use the default value of False
+ **timestamp** | **str**| | [optional]
+
+### Return type
+
+[**AfmExecutionResponse**](AfmExecutionResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | AFM Execution response with links to the result and server-enhanced dimensions from the original request. | - |
+
+[[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)
+
+# **compute_valid_objects**
+> AfmValidObjectsResponse compute_valid_objects(workspace_id, afm_valid_objects_query)
+
+Valid objects
+
+Returns list containing attributes, facts, or metrics, which can be added to given AFM while still keeping it computable.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.afm_valid_objects_query import AfmValidObjectsQuery
+from gooddata_api_client.model.afm_valid_objects_response import AfmValidObjectsResponse
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier
+ afm_valid_objects_query = AfmValidObjectsQuery(
+ afm=AFM(
+ attributes=[
+ AttributeItem(
+ label=AfmObjectIdentifierLabel(
+ identifier=AfmObjectIdentifierLabelIdentifier(
+ id="sample_item.price",
+ type="label",
+ ),
+ ),
+ local_identifier="2",
+ ),
+ ],
+ aux_measures=[
+ MeasureItem(
+ definition=MeasureDefinition(),
+ local_identifier="metric_1",
+ ),
+ ],
+ filters=[
+ FilterDefinition(),
+ ],
+ measures=[
+ MeasureItem(
+ definition=MeasureDefinition(),
+ local_identifier="metric_1",
+ ),
+ ],
+ ),
+ types=[
+ "facts",
+ ],
+ ) # AfmValidObjectsQuery |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Valid objects
+ api_response = api_instance.compute_valid_objects(workspace_id, afm_valid_objects_query)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->compute_valid_objects: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| Workspace identifier |
+ **afm_valid_objects_query** | [**AfmValidObjectsQuery**](AfmValidObjectsQuery.md)| |
+
+### Return type
+
+[**AfmValidObjectsResponse**](AfmValidObjectsResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | List of attributes, facts and metrics valid with respect to given AFM. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_tabular_export**
+> TabularExportResult create_tabular_export(workspace_id, tabular_export_request)
+
+Create tabular export request
+
+An tabular export job will be created based on the export request and put to queue to be executed. The result of the operation will be an exportResult identifier that will be assembled by the client into a url that can be polled.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.tabular_export_result import TabularExportResult
+from gooddata_api_client.model.tabular_export_request import TabularExportRequest
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ tabular_export_request = TabularExportRequest(
+ custom_override=CustomOverride(
+ labels={
+ "key": CustomLabel(
+ title="title_example",
+ ),
+ },
+ metrics={
+ "key": CustomMetric(
+ format="format_example",
+ title="title_example",
+ ),
+ },
+ ),
+ execution_result="ff483727196c9dc862c7fd3a5a84df55c96d61a4",
+ file_name="result",
+ format="CSV",
+ settings=Settings(
+ merge_headers=True,
+ show_filters=False,
+ ),
+ ) # TabularExportRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Create tabular export request
+ api_response = api_instance.create_tabular_export(workspace_id, tabular_export_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->create_tabular_export: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **tabular_export_request** | [**TabularExportRequest**](TabularExportRequest.md)| |
+
+### Return type
+
+[**TabularExportResult**](TabularExportResult.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Tabular export request created successfully. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **explain_afm**
+> explain_afm(workspace_id, afm_execution)
+
+AFM explain resource.
+
+The resource provides static structures needed for investigation of a problem with given AFM.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.afm_execution import AfmExecution
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier
+ afm_execution = AfmExecution(
+ execution=AFM(
+ attributes=[
+ AttributeItem(
+ label=AfmObjectIdentifierLabel(
+ identifier=AfmObjectIdentifierLabelIdentifier(
+ id="sample_item.price",
+ type="label",
+ ),
+ ),
+ local_identifier="2",
+ ),
+ ],
+ aux_measures=[
+ MeasureItem(
+ definition=MeasureDefinition(),
+ local_identifier="metric_1",
+ ),
+ ],
+ filters=[
+ FilterDefinition(),
+ ],
+ measures=[
+ MeasureItem(
+ definition=MeasureDefinition(),
+ local_identifier="metric_1",
+ ),
+ ],
+ ),
+ result_spec=ResultSpec(
+ dimensions=[
+ Dimension(
+ item_identifiers=["attribute_1","measureGroup"],
+ local_identifier="firstDimension",
+ sorting=[
+ SortKey(),
+ ],
+ ),
+ ],
+ totals=[
+ Total(
+ function="SUM",
+ local_identifier="firstTotal",
+ metric="metric_1",
+ total_dimensions=[
+ TotalDimension(
+ dimension_identifier="firstDimension",
+ total_dimension_items=["measureGroup"],
+ ),
+ ],
+ ),
+ ],
+ ),
+ settings=ExecutionSettings(
+ data_sampling_percentage=0,
+ ),
+ ) # AfmExecution |
+ explain_type = "MAQL" # str | Requested explain type. If not specified all types are bundled in a ZIP archive. `MAQL` - MAQL Abstract Syntax Tree, execution dimensions and related info `GRPC_MODEL` - Datasets used in execution `WDF` - Workspace data filters in execution workspace context `QT` - Query Tree, created from MAQL AST using Logical Data Model, contains all information needed to generate SQL `QT_SVG` - Generated SVG image of the Query Tree `OPT_QT` - Optimized Query Tree `OPT_QT_SVG` - Generated SVG image of the Optimized Query Tree `SQL` - Final SQL to be executed (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ # AFM explain resource.
+ api_instance.explain_afm(workspace_id, afm_execution)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->explain_afm: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ # AFM explain resource.
+ api_instance.explain_afm(workspace_id, afm_execution, explain_type=explain_type)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->explain_afm: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| Workspace identifier |
+ **afm_execution** | [**AfmExecution**](AfmExecution.md)| |
+ **explain_type** | **str**| Requested explain type. If not specified all types are bundled in a ZIP archive. `MAQL` - MAQL Abstract Syntax Tree, execution dimensions and related info `GRPC_MODEL` - Datasets used in execution `WDF` - Workspace data filters in execution workspace context `QT` - Query Tree, created from MAQL AST using Logical Data Model, contains all information needed to generate SQL `QT_SVG` - Generated SVG image of the Query Tree `OPT_QT` - Optimized Query Tree `OPT_QT_SVG` - Generated SVG image of the Optimized Query Tree `SQL` - Final SQL to be executed | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json, application/sql, application/zip, image/svg+xml
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Requested resource | - |
+
+[[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)
+
+# **generate_logical_model**
+> DeclarativeModel generate_logical_model(data_source_id, generate_ldm_request)
+
+Generate logical data model (LDM) from physical data model (PDM)
+
+Generate logical data model (LDM) from physical data model (PDM) stored in data source.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.declarative_model import DeclarativeModel
+from gooddata_api_client.model.generate_ldm_request import GenerateLdmRequest
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ data_source_id = "dataSourceId_example" # str |
+ generate_ldm_request = GenerateLdmRequest(
+ date_granularities="all",
+ denorm_prefix="dr",
+ fact_prefix="f",
+ generate_long_ids=True,
+ grain_prefix="g",
+ grain_reference_prefix="gr",
+ primary_label_prefix="pl",
+ reference_prefix="r",
+ secondary_label_prefix="sl",
+ separator="__",
+ table_prefix="out_table",
+ view_prefix="out_view",
+ wdf_prefix="wdf",
+ ) # GenerateLdmRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Generate logical data model (LDM) from physical data model (PDM)
+ api_response = api_instance.generate_logical_model(data_source_id, generate_ldm_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->generate_logical_model: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **data_source_id** | **str**| |
+ **generate_ldm_request** | [**GenerateLdmRequest**](GenerateLdmRequest.md)| |
+
+### Return type
+
+[**DeclarativeModel**](DeclarativeModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | LDM generated successfully. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_data_source_schemata**
+> DataSourceSchemata get_data_source_schemata(data_source_id)
+
+Get a list of schema names of a database
+
+It scans a database and reads metadata. The result of the request contains a list of schema names of a database.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.data_source_schemata import DataSourceSchemata
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ data_source_id = "myPostgres" # str | Data source id
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get a list of schema names of a database
+ api_response = api_instance.get_data_source_schemata(data_source_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->get_data_source_schemata: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **data_source_id** | **str**| Data source id |
+
+### Return type
+
+[**DataSourceSchemata**](DataSourceSchemata.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | The result of the scan schemata | - |
+
+[[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_dependent_entities_graph**
+> DependentEntitiesResponse get_dependent_entities_graph(workspace_id)
+
+Computes the dependent entities graph
+
+Computes the dependent entities graph
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.dependent_entities_response import DependentEntitiesResponse
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Computes the dependent entities graph
+ api_response = api_instance.get_dependent_entities_graph(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->get_dependent_entities_graph: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+
+### Return type
+
+[**DependentEntitiesResponse**](DependentEntitiesResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Computes the dependent entities graph | - |
+
+[[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_dependent_entities_graph_from_entry_points**
+> DependentEntitiesResponse get_dependent_entities_graph_from_entry_points(workspace_id, dependent_entities_request)
+
+Computes the dependent entities graph from given entry points
+
+Computes the dependent entities graph from given entry points
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.dependent_entities_request import DependentEntitiesRequest
+from gooddata_api_client.model.dependent_entities_response import DependentEntitiesResponse
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ dependent_entities_request = DependentEntitiesRequest(
+ identifiers=[
+ EntityIdentifier(
+ id="id_example",
+ type="type_example",
+ ),
+ ],
+ ) # DependentEntitiesRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Computes the dependent entities graph from given entry points
+ api_response = api_instance.get_dependent_entities_graph_from_entry_points(workspace_id, dependent_entities_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->get_dependent_entities_graph_from_entry_points: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **dependent_entities_request** | [**DependentEntitiesRequest**](DependentEntitiesRequest.md)| |
+
+### Return type
+
+[**DependentEntitiesResponse**](DependentEntitiesResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Computes the dependent entities graph from given entry points | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_tabular_export**
+> get_tabular_export(workspace_id, export_id)
+
+Retrieve exported files
+
+After clients creates a POST export request, the processing of it will start shortly asynchronously. To retrieve the result, client has to check periodically for the result on this endpoint. In case the result isn't ready yet, the service returns 202. If the result is ready, it returns 200 and octet stream of the result file with provided filename.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ export_id = "exportId_example" # str |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Retrieve exported files
+ api_instance.get_tabular_export(workspace_id, export_id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->get_tabular_export: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **export_id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, text/csv, application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Binary export result. | * Content-Disposition -
|
+**202** | Request is accepted, provided exportId exists, but export is not yet ready. | - |
+
+[[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)
+
+# **particular_platform_usage**
+> [PlatformUsage] particular_platform_usage(platform_usage_request)
+
+Info about the platform usage for particular items.
+
+Provides information about platform usage, like amount of users, workspaces, ...
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.platform_usage_request import PlatformUsageRequest
+from gooddata_api_client.model.platform_usage import PlatformUsage
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ platform_usage_request = PlatformUsageRequest(
+ usage_item_names=[
+ "UserCount",
+ ],
+ ) # PlatformUsageRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Info about the platform usage for particular items.
+ api_response = api_instance.particular_platform_usage(platform_usage_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->particular_platform_usage: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **platform_usage_request** | [**PlatformUsageRequest**](PlatformUsageRequest.md)| |
+
+### Return type
+
+[**[PlatformUsage]**](PlatformUsage.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **register_upload_notification**
+> register_upload_notification(data_source_id)
+
+Register an upload notification
+
+Notification sets up all reports to be computed again with new data.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ data_source_id = "dataSourceId_example" # str |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Register an upload notification
+ api_instance.register_upload_notification(data_source_id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->register_upload_notification: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **data_source_id** | **str**| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | An upload notification has been successfully registered. | - |
+
+[[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)
+
+# **resolve_all_entitlements**
+> [ApiEntitlement] resolve_all_entitlements()
+
+Values for all public entitlements.
+
+Resolves values of available entitlements for the organization.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.api_entitlement import ApiEntitlement
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Values for all public entitlements.
+ api_response = api_instance.resolve_all_entitlements()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->resolve_all_entitlements: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**[ApiEntitlement]**](ApiEntitlement.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **resolve_all_settings_without_workspace**
+> [DeclarativeSetting] resolve_all_settings_without_workspace()
+
+Values for all settings without workspace.
+
+Resolves values for all settings without workspace by current user, organization, or default settings.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.declarative_setting import DeclarativeSetting
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Values for all settings without workspace.
+ api_response = api_instance.resolve_all_settings_without_workspace()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->resolve_all_settings_without_workspace: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**[DeclarativeSetting]**](DeclarativeSetting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Values for selected settings. | - |
+
+[[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)
+
+# **resolve_requested_entitlements**
+> [ApiEntitlement] resolve_requested_entitlements(entitlements_request)
+
+Values for requested public entitlements.
+
+Resolves values for requested entitlements in the organization.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.api_entitlement import ApiEntitlement
+from gooddata_api_client.model.entitlements_request import EntitlementsRequest
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ entitlements_request = EntitlementsRequest(
+ entitlements_name=[
+ "Contract",
+ ],
+ ) # EntitlementsRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Values for requested public entitlements.
+ api_response = api_instance.resolve_requested_entitlements(entitlements_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->resolve_requested_entitlements: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **entitlements_request** | [**EntitlementsRequest**](EntitlementsRequest.md)| |
+
+### Return type
+
+[**[ApiEntitlement]**](ApiEntitlement.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **resolve_settings_without_workspace**
+> [DeclarativeSetting] resolve_settings_without_workspace(resolve_settings_request)
+
+Values for selected settings without workspace.
+
+Resolves values for selected settings without workspace by current user, organization, or default settings.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.declarative_setting import DeclarativeSetting
+from gooddata_api_client.model.resolve_settings_request import ResolveSettingsRequest
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ resolve_settings_request = ResolveSettingsRequest(
+ settings=["timezone"],
+ ) # ResolveSettingsRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Values for selected settings without workspace.
+ api_response = api_instance.resolve_settings_without_workspace(resolve_settings_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->resolve_settings_without_workspace: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **resolve_settings_request** | [**ResolveSettingsRequest**](ResolveSettingsRequest.md)| |
+
+### Return type
+
+[**[DeclarativeSetting]**](DeclarativeSetting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Values for selected settings. | - |
+
+[[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)
+
+# **retrieve_execution_metadata**
+> ResultCacheMetadata retrieve_execution_metadata(workspace_id, result_id)
+
+Get a single execution result's metadata.
+
+The resource provides execution result's metadata as AFM and resultSpec used in execution request and an executionResponse
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.result_cache_metadata import ResultCacheMetadata
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier
+ result_id = "a9b28f9dc55f37ea9f4a5fb0c76895923591e781" # str | Result ID
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get a single execution result's metadata.
+ api_response = api_instance.retrieve_execution_metadata(workspace_id, result_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->retrieve_execution_metadata: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| Workspace identifier |
+ **result_id** | **str**| Result ID |
+
+### Return type
+
+[**ResultCacheMetadata**](ResultCacheMetadata.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Execution result's metadata was found and returned. | - |
+
+[[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)
+
+# **retrieve_result**
+> ExecutionResult retrieve_result(workspace_id, result_id)
+
+Get a single execution result
+
+Gets a single execution result.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.execution_result import ExecutionResult
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier
+ result_id = "a9b28f9dc55f37ea9f4a5fb0c76895923591e781" # str | Result ID
+ offset = [
+ offset=1,10,
+ ] # [int] | Request page with these offsets. Format is offset=1,2,3,... - one offset for each dimensions in ResultSpec from originating AFM. (optional) if omitted the server will use the default value of []
+ limit = [
+ limit=1,10,
+ ] # [int] | Return only this number of items. Format is limit=1,2,3,... - one limit for each dimensions in ResultSpec from originating AFM. (optional) if omitted the server will use the default value of []
+ excluded_total_dimensions = [
+ "excludedTotalDimensions=dim_0,dim_1",
+ ] # [str] | Identifiers of the dimensions where grand total data should not be returned for this request. A grand total will not be returned if all of its totalDimensions are in excludedTotalDimensions. (optional) if omitted the server will use the default value of []
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get a single execution result
+ api_response = api_instance.retrieve_result(workspace_id, result_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->retrieve_result: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ # Get a single execution result
+ api_response = api_instance.retrieve_result(workspace_id, result_id, offset=offset, limit=limit, excluded_total_dimensions=excluded_total_dimensions)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->retrieve_result: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| Workspace identifier |
+ **result_id** | **str**| Result ID |
+ **offset** | **[int]**| Request page with these offsets. Format is offset=1,2,3,... - one offset for each dimensions in ResultSpec from originating AFM. | [optional] if omitted the server will use the default value of []
+ **limit** | **[int]**| Return only this number of items. Format is limit=1,2,3,... - one limit for each dimensions in ResultSpec from originating AFM. | [optional] if omitted the server will use the default value of []
+ **excluded_total_dimensions** | **[str]**| Identifiers of the dimensions where grand total data should not be returned for this request. A grand total will not be returned if all of its totalDimensions are in excludedTotalDimensions. | [optional] if omitted the server will use the default value of []
+
+### Return type
+
+[**ExecutionResult**](ExecutionResult.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Execution result was found and returned. | - |
+
+[[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)
+
+# **scan_data_source**
+> ScanResultPdm scan_data_source(data_source_id, scan_request)
+
+Scan a database to get a physical data model (PDM)
+
+It scans a database and transforms its metadata to a declarative definition of the physical data model (PDM). The result of the request contains the mentioned physical data model (PDM) of a database within warning, for example, about unsupported columns.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.scan_request import ScanRequest
+from gooddata_api_client.model.scan_result_pdm import ScanResultPdm
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ data_source_id = "myPostgres" # str | Data source id
+ scan_request = ScanRequest(
+ scan_tables=True,
+ scan_views=True,
+ schemata=["tpch","demo"],
+ separator="__",
+ table_prefix="out_table",
+ view_prefix="out_view",
+ ) # ScanRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Scan a database to get a physical data model (PDM)
+ api_response = api_instance.scan_data_source(data_source_id, scan_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->scan_data_source: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **data_source_id** | **str**| Data source id |
+ **scan_request** | [**ScanRequest**](ScanRequest.md)| |
+
+### Return type
+
+[**ScanResultPdm**](ScanResultPdm.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | The result of the scan. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_data_source**
+> TestResponse test_data_source(data_source_id, test_request)
+
+Test data source connection by data source id
+
+Test if it is possible to connect to a database using an existing data source definition.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.test_response import TestResponse
+from gooddata_api_client.model.test_request import TestRequest
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ data_source_id = "myPostgres" # str | Data source id
+ test_request = TestRequest(
+ cache_path=[
+ "cache_path_example",
+ ],
+ enable_caching=False,
+ parameters=[
+ DataSourceParameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ password="admin123",
+ schema="public",
+ token="token_example",
+ url="jdbc:postgresql://localhost:5432/db_name",
+ username="dbadmin",
+ ) # TestRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Test data source connection by data source id
+ api_response = api_instance.test_data_source(data_source_id, test_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->test_data_source: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **data_source_id** | **str**| Data source id |
+ **test_request** | [**TestRequest**](TestRequest.md)| |
+
+### Return type
+
+[**TestResponse**](TestResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | The result of the test of a data source connection. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **test_data_source_definition**
+> TestResponse test_data_source_definition(test_definition_request)
+
+Test connection by data source definition
+
+Test if it is possible to connect to a database using a connection provided by the data source definition in the request body.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.test_response import TestResponse
+from gooddata_api_client.model.test_definition_request import TestDefinitionRequest
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ test_definition_request = TestDefinitionRequest(
+ parameters=[
+ DataSourceParameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ password="admin123",
+ schema="public",
+ token="token_example",
+ type="POSTGRESQL",
+ url="jdbc:postgresql://localhost:5432/db_name",
+ username="dbadmin",
+ ) # TestDefinitionRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Test connection by data source definition
+ api_response = api_instance.test_data_source_definition(test_definition_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->test_data_source_definition: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **test_definition_request** | [**TestDefinitionRequest**](TestDefinitionRequest.md)| |
+
+### Return type
+
+[**TestResponse**](TestResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | The result of the test of a data source connection. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **workspace_resolve_all_settings**
+> [DeclarativeSetting] workspace_resolve_all_settings(workspace_id)
+
+Values for all settings.
+
+Resolves values for all settings in a workspace by current user, workspace, organization, or default settings.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.declarative_setting import DeclarativeSetting
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Values for all settings.
+ api_response = api_instance.workspace_resolve_all_settings(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->workspace_resolve_all_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+
+### Return type
+
+[**[DeclarativeSetting]**](DeclarativeSetting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Values for selected settings. | - |
+
+[[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)
+
+# **workspace_resolve_settings**
+> [DeclarativeSetting] workspace_resolve_settings(workspace_id, resolve_settings_request)
+
+Values for selected settings.
+
+Resolves value for selected settings in a workspace by current user, workspace, organization, or default settings.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import actions_api
+from gooddata_api_client.model.declarative_setting import DeclarativeSetting
+from gooddata_api_client.model.resolve_settings_request import ResolveSettingsRequest
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ resolve_settings_request = ResolveSettingsRequest(
+ settings=["timezone"],
+ ) # ResolveSettingsRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Values for selected settings.
+ api_response = api_instance.workspace_resolve_settings(workspace_id, resolve_settings_request)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling ActionsApi->workspace_resolve_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **resolve_settings_request** | [**ResolveSettingsRequest**](ResolveSettingsRequest.md)| |
+
+### Return type
+
+[**[DeclarativeSetting]**](DeclarativeSetting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Values for selected settings. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/gooddata-api-client/docs/AfmExecution.md b/gooddata-api-client/docs/AfmExecution.md
new file mode 100644
index 000000000..5428f8861
--- /dev/null
+++ b/gooddata-api-client/docs/AfmExecution.md
@@ -0,0 +1,14 @@
+# AfmExecution
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**execution** | [**AFM**](AFM.md) | |
+**result_spec** | [**ResultSpec**](ResultSpec.md) | |
+**settings** | [**ExecutionSettings**](ExecutionSettings.md) | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/AfmExecutionResponse.md b/gooddata-api-client/docs/AfmExecutionResponse.md
new file mode 100644
index 000000000..33ab4e5f0
--- /dev/null
+++ b/gooddata-api-client/docs/AfmExecutionResponse.md
@@ -0,0 +1,12 @@
+# AfmExecutionResponse
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**execution_response** | [**ExecutionResponse**](ExecutionResponse.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/AfmIdentifier.md b/gooddata-api-client/docs/AfmIdentifier.md
new file mode 100644
index 000000000..4976b4b76
--- /dev/null
+++ b/gooddata-api-client/docs/AfmIdentifier.md
@@ -0,0 +1,13 @@
+# AfmIdentifier
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**identifier** | [**AfmObjectIdentifierIdentifier**](AfmObjectIdentifierIdentifier.md) | | [optional]
+**local_identifier** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[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/AfmLocalIdentifier.md b/gooddata-api-client/docs/AfmLocalIdentifier.md
new file mode 100644
index 000000000..1cfa23221
--- /dev/null
+++ b/gooddata-api-client/docs/AfmLocalIdentifier.md
@@ -0,0 +1,12 @@
+# AfmLocalIdentifier
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**local_identifier** | **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/AfmObjectIdentifier.md b/gooddata-api-client/docs/AfmObjectIdentifier.md
new file mode 100644
index 000000000..c74c00e85
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifier.md
@@ -0,0 +1,13 @@
+# AfmObjectIdentifier
+
+ObjectIdentifier with `identifier` wrapper. This serves to distinguish MD object identifiers in AFM request from local identifiers.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**identifier** | [**AfmObjectIdentifierIdentifier**](AfmObjectIdentifierIdentifier.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/AfmObjectIdentifierAttribute.md b/gooddata-api-client/docs/AfmObjectIdentifierAttribute.md
new file mode 100644
index 000000000..e31efa01b
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifierAttribute.md
@@ -0,0 +1,12 @@
+# AfmObjectIdentifierAttribute
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**identifier** | [**AfmObjectIdentifierAttributeIdentifier**](AfmObjectIdentifierAttributeIdentifier.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/AfmObjectIdentifierAttributeIdentifier.md b/gooddata-api-client/docs/AfmObjectIdentifierAttributeIdentifier.md
new file mode 100644
index 000000000..d67a6054d
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifierAttributeIdentifier.md
@@ -0,0 +1,13 @@
+# AfmObjectIdentifierAttributeIdentifier
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "attribute"
+**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/AfmObjectIdentifierCore.md b/gooddata-api-client/docs/AfmObjectIdentifierCore.md
new file mode 100644
index 000000000..086538c91
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifierCore.md
@@ -0,0 +1,12 @@
+# AfmObjectIdentifierCore
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**identifier** | [**AfmObjectIdentifierCoreIdentifier**](AfmObjectIdentifierCoreIdentifier.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/AfmObjectIdentifierCoreIdentifier.md b/gooddata-api-client/docs/AfmObjectIdentifierCoreIdentifier.md
new file mode 100644
index 000000000..d04de0d14
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifierCoreIdentifier.md
@@ -0,0 +1,13 @@
+# AfmObjectIdentifierCoreIdentifier
+
+
+## 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/AfmObjectIdentifierDataset.md b/gooddata-api-client/docs/AfmObjectIdentifierDataset.md
new file mode 100644
index 000000000..af93c6510
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifierDataset.md
@@ -0,0 +1,12 @@
+# AfmObjectIdentifierDataset
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**identifier** | [**AfmObjectIdentifierDatasetIdentifier**](AfmObjectIdentifierDatasetIdentifier.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/AfmObjectIdentifierDatasetIdentifier.md b/gooddata-api-client/docs/AfmObjectIdentifierDatasetIdentifier.md
new file mode 100644
index 000000000..a7afa2e03
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifierDatasetIdentifier.md
@@ -0,0 +1,13 @@
+# AfmObjectIdentifierDatasetIdentifier
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "dataset"
+**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/AfmObjectIdentifierIdentifier.md b/gooddata-api-client/docs/AfmObjectIdentifierIdentifier.md
new file mode 100644
index 000000000..383161b81
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifierIdentifier.md
@@ -0,0 +1,13 @@
+# AfmObjectIdentifierIdentifier
+
+
+## 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/AfmObjectIdentifierLabel.md b/gooddata-api-client/docs/AfmObjectIdentifierLabel.md
new file mode 100644
index 000000000..4618a0d40
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifierLabel.md
@@ -0,0 +1,12 @@
+# AfmObjectIdentifierLabel
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**identifier** | [**AfmObjectIdentifierLabelIdentifier**](AfmObjectIdentifierLabelIdentifier.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/AfmObjectIdentifierLabelIdentifier.md b/gooddata-api-client/docs/AfmObjectIdentifierLabelIdentifier.md
new file mode 100644
index 000000000..f47d11e58
--- /dev/null
+++ b/gooddata-api-client/docs/AfmObjectIdentifierLabelIdentifier.md
@@ -0,0 +1,13 @@
+# AfmObjectIdentifierLabelIdentifier
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "label"
+**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/AfmValidObjectsQuery.md b/gooddata-api-client/docs/AfmValidObjectsQuery.md
new file mode 100644
index 000000000..b5755d852
--- /dev/null
+++ b/gooddata-api-client/docs/AfmValidObjectsQuery.md
@@ -0,0 +1,14 @@
+# AfmValidObjectsQuery
+
+Entity holding AFM and list of object types whose validity should be computed.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**afm** | [**AFM**](AFM.md) | |
+**types** | **[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/AfmValidObjectsResponse.md b/gooddata-api-client/docs/AfmValidObjectsResponse.md
new file mode 100644
index 000000000..45a5a25b2
--- /dev/null
+++ b/gooddata-api-client/docs/AfmValidObjectsResponse.md
@@ -0,0 +1,13 @@
+# AfmValidObjectsResponse
+
+All objects of specified types valid with respect to given AFM.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**items** | [**[RestApiIdentifier]**](RestApiIdentifier.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/ApiEntitlement.md b/gooddata-api-client/docs/ApiEntitlement.md
new file mode 100644
index 000000000..28e9587dd
--- /dev/null
+++ b/gooddata-api-client/docs/ApiEntitlement.md
@@ -0,0 +1,14 @@
+# ApiEntitlement
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+**expiry** | **date** | | [optional]
+**value** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/ArithmeticMeasureDefinition.md b/gooddata-api-client/docs/ArithmeticMeasureDefinition.md
new file mode 100644
index 000000000..3ee4790d7
--- /dev/null
+++ b/gooddata-api-client/docs/ArithmeticMeasureDefinition.md
@@ -0,0 +1,13 @@
+# ArithmeticMeasureDefinition
+
+Metric representing arithmetics between metrics.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arithmetic_measure** | [**ArithmeticMeasureDefinitionArithmeticMeasure**](ArithmeticMeasureDefinitionArithmeticMeasure.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/ArithmeticMeasureDefinitionArithmeticMeasure.md b/gooddata-api-client/docs/ArithmeticMeasureDefinitionArithmeticMeasure.md
new file mode 100644
index 000000000..e06f33fa7
--- /dev/null
+++ b/gooddata-api-client/docs/ArithmeticMeasureDefinitionArithmeticMeasure.md
@@ -0,0 +1,13 @@
+# ArithmeticMeasureDefinitionArithmeticMeasure
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**measure_identifiers** | [**[AfmLocalIdentifier]**](AfmLocalIdentifier.md) | List of metrics to apply arithmetic operation by chosen operator. |
+**operator** | **str** | Arithmetic operator describing operation between metrics. |
+**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/AssigneeIdentifier.md b/gooddata-api-client/docs/AssigneeIdentifier.md
new file mode 100644
index 000000000..4ab713a35
--- /dev/null
+++ b/gooddata-api-client/docs/AssigneeIdentifier.md
@@ -0,0 +1,14 @@
+# AssigneeIdentifier
+
+Identifier of a user or user-group.
+
+## 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/AttributeExecutionResultHeader.md b/gooddata-api-client/docs/AttributeExecutionResultHeader.md
new file mode 100644
index 000000000..c337ca4ce
--- /dev/null
+++ b/gooddata-api-client/docs/AttributeExecutionResultHeader.md
@@ -0,0 +1,12 @@
+# AttributeExecutionResultHeader
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_header** | [**AttributeResultHeader**](AttributeResultHeader.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/AttributeFilter.md b/gooddata-api-client/docs/AttributeFilter.md
new file mode 100644
index 000000000..ae94fd974
--- /dev/null
+++ b/gooddata-api-client/docs/AttributeFilter.md
@@ -0,0 +1,14 @@
+# AttributeFilter
+
+Abstract filter definition type attributes
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**negative_attribute_filter** | [**NegativeAttributeFilterNegativeAttributeFilter**](NegativeAttributeFilterNegativeAttributeFilter.md) | | [optional]
+**positive_attribute_filter** | [**PositiveAttributeFilterPositiveAttributeFilter**](PositiveAttributeFilterPositiveAttributeFilter.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/AttributeFilterElements.md b/gooddata-api-client/docs/AttributeFilterElements.md
new file mode 100644
index 000000000..4dd9c679c
--- /dev/null
+++ b/gooddata-api-client/docs/AttributeFilterElements.md
@@ -0,0 +1,13 @@
+# AttributeFilterElements
+
+Filter on specific set of label values.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**values** | **[str]** | Set of label values. |
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/AttributeHeaderOut.md b/gooddata-api-client/docs/AttributeHeaderOut.md
new file mode 100644
index 000000000..d3bd5ba6a
--- /dev/null
+++ b/gooddata-api-client/docs/AttributeHeaderOut.md
@@ -0,0 +1,12 @@
+# AttributeHeaderOut
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_header** | [**AttributeHeaderOutAttributeHeader**](AttributeHeaderOutAttributeHeader.md) | |
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/AttributeHeaderOutAttributeHeader.md b/gooddata-api-client/docs/AttributeHeaderOutAttributeHeader.md
new file mode 100644
index 000000000..e8d42afbf
--- /dev/null
+++ b/gooddata-api-client/docs/AttributeHeaderOutAttributeHeader.md
@@ -0,0 +1,18 @@
+# AttributeHeaderOutAttributeHeader
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute** | [**RestApiIdentifier**](RestApiIdentifier.md) | |
+**attribute_name** | **str** | |
+**label** | [**RestApiIdentifier**](RestApiIdentifier.md) | |
+**label_name** | **str** | |
+**local_identifier** | **str** | |
+**primary_label** | [**RestApiIdentifier**](RestApiIdentifier.md) | |
+**granularity** | **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/AttributeItem.md b/gooddata-api-client/docs/AttributeItem.md
new file mode 100644
index 000000000..b8f1cf5f7
--- /dev/null
+++ b/gooddata-api-client/docs/AttributeItem.md
@@ -0,0 +1,13 @@
+# AttributeItem
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**label** | [**AfmObjectIdentifierLabel**](AfmObjectIdentifierLabel.md) | |
+**local_identifier** | **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/AttributeResultHeader.md b/gooddata-api-client/docs/AttributeResultHeader.md
new file mode 100644
index 000000000..d6502435c
--- /dev/null
+++ b/gooddata-api-client/docs/AttributeResultHeader.md
@@ -0,0 +1,14 @@
+# AttributeResultHeader
+
+Header containing the information related to attributes.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**label_value** | **str** | A value of the current attribute label. |
+**primary_label_value** | **str** | A value of the primary attribute label. |
+**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/ColumnWarning.md b/gooddata-api-client/docs/ColumnWarning.md
new file mode 100644
index 000000000..3df55082a
--- /dev/null
+++ b/gooddata-api-client/docs/ColumnWarning.md
@@ -0,0 +1,14 @@
+# ColumnWarning
+
+Warning related to single column.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**message** | **[str]** | Warning message related to the column. |
+**name** | **[str]** | Column name. |
+**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/ComparisonMeasureValueFilter.md b/gooddata-api-client/docs/ComparisonMeasureValueFilter.md
new file mode 100644
index 000000000..adda7f7f3
--- /dev/null
+++ b/gooddata-api-client/docs/ComparisonMeasureValueFilter.md
@@ -0,0 +1,13 @@
+# ComparisonMeasureValueFilter
+
+Filter the result by comparing specified metric to given constant value, using given comparison operator.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**comparison_measure_value_filter** | [**ComparisonMeasureValueFilterComparisonMeasureValueFilter**](ComparisonMeasureValueFilterComparisonMeasureValueFilter.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/ComparisonMeasureValueFilterComparisonMeasureValueFilter.md b/gooddata-api-client/docs/ComparisonMeasureValueFilterComparisonMeasureValueFilter.md
new file mode 100644
index 000000000..13ab39595
--- /dev/null
+++ b/gooddata-api-client/docs/ComparisonMeasureValueFilterComparisonMeasureValueFilter.md
@@ -0,0 +1,16 @@
+# ComparisonMeasureValueFilterComparisonMeasureValueFilter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**measure** | [**AfmIdentifier**](AfmIdentifier.md) | |
+**operator** | **str** | |
+**value** | **float** | |
+**apply_on_result** | **bool** | | [optional]
+**treat_null_values_as** | **float** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/CustomLabel.md b/gooddata-api-client/docs/CustomLabel.md
new file mode 100644
index 000000000..0b38b23d0
--- /dev/null
+++ b/gooddata-api-client/docs/CustomLabel.md
@@ -0,0 +1,13 @@
+# CustomLabel
+
+Custom label object override.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**title** | **str** | Override 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/CustomMetric.md b/gooddata-api-client/docs/CustomMetric.md
new file mode 100644
index 000000000..b1924fb65
--- /dev/null
+++ b/gooddata-api-client/docs/CustomMetric.md
@@ -0,0 +1,14 @@
+# CustomMetric
+
+Custom metric object override.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**format** | **str** | Format override. |
+**title** | **str** | Metric title override. |
+**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/CustomOverride.md b/gooddata-api-client/docs/CustomOverride.md
new file mode 100644
index 000000000..6572873c5
--- /dev/null
+++ b/gooddata-api-client/docs/CustomOverride.md
@@ -0,0 +1,14 @@
+# CustomOverride
+
+Custom cell value overrides (IDs will be replaced with specified values).
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**labels** | [**{str: (CustomLabel,)}**](CustomLabel.md) | Map of CustomLabels with keys used as placeholders in document. | [optional]
+**metrics** | [**{str: (CustomMetric,)}**](CustomMetric.md) | Map of CustomMetrics with keys used as placeholders in document. | [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/DataColumnLocator.md b/gooddata-api-client/docs/DataColumnLocator.md
new file mode 100644
index 000000000..5719d2e95
--- /dev/null
+++ b/gooddata-api-client/docs/DataColumnLocator.md
@@ -0,0 +1,13 @@
+# DataColumnLocator
+
+Mapping from dimension items (either 'localIdentifier' from 'AttributeItem', or \"measureGroup\") to their respective values. This effectively specifies the path (location) of the data column used for sorting. Therefore values for all dimension items must be specified.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**properties** | **{str: (str,)}** | Mapping from dimension items (either 'localIdentifier' from 'AttributeItem', or \"measureGroup\") to their respective values. This effectively specifies the path (location) of the data column used for sorting. Therefore values for all dimension items must be specified. |
+**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/DataColumnLocators.md b/gooddata-api-client/docs/DataColumnLocators.md
new file mode 100644
index 000000000..50816232a
--- /dev/null
+++ b/gooddata-api-client/docs/DataColumnLocators.md
@@ -0,0 +1,12 @@
+# DataColumnLocators
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**properties** | [**{str: (DataColumnLocator,)}**](DataColumnLocator.md) | Mapping from dimensions to data column locators. | [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/DataSourceParameter.md b/gooddata-api-client/docs/DataSourceParameter.md
new file mode 100644
index 000000000..37a73f2aa
--- /dev/null
+++ b/gooddata-api-client/docs/DataSourceParameter.md
@@ -0,0 +1,14 @@
+# DataSourceParameter
+
+A parameter for testing data source connection
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | Parameter name. |
+**value** | **str** | Parameter 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/DataSourceSchemata.md b/gooddata-api-client/docs/DataSourceSchemata.md
new file mode 100644
index 000000000..0d6c8258f
--- /dev/null
+++ b/gooddata-api-client/docs/DataSourceSchemata.md
@@ -0,0 +1,13 @@
+# DataSourceSchemata
+
+Result of getSchemata. Contains list of available DB schema names.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**schema_names** | **[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/DataSourceTableIdentifier.md b/gooddata-api-client/docs/DataSourceTableIdentifier.md
new file mode 100644
index 000000000..6246442a7
--- /dev/null
+++ b/gooddata-api-client/docs/DataSourceTableIdentifier.md
@@ -0,0 +1,15 @@
+# DataSourceTableIdentifier
+
+An id of the table from PDM mapped to this dataset. Including ID of data source.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data_source_id** | **str** | Data source ID. |
+**id** | **str** | ID of table. |
+**type** | **str** | Data source entity type. | defaults to "dataSource"
+**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/DatasetReferenceIdentifier.md b/gooddata-api-client/docs/DatasetReferenceIdentifier.md
new file mode 100644
index 000000000..a183544c3
--- /dev/null
+++ b/gooddata-api-client/docs/DatasetReferenceIdentifier.md
@@ -0,0 +1,13 @@
+# DatasetReferenceIdentifier
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "dataset"
+**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/DateFilter.md b/gooddata-api-client/docs/DateFilter.md
new file mode 100644
index 000000000..094256fbf
--- /dev/null
+++ b/gooddata-api-client/docs/DateFilter.md
@@ -0,0 +1,14 @@
+# DateFilter
+
+Abstract filter definition type for dates
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**absolute_date_filter** | [**AbsoluteDateFilterAbsoluteDateFilter**](AbsoluteDateFilterAbsoluteDateFilter.md) | | [optional]
+**relative_date_filter** | [**RelativeDateFilterRelativeDateFilter**](RelativeDateFilterRelativeDateFilter.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/DeclarativeAnalyticalDashboard.md b/gooddata-api-client/docs/DeclarativeAnalyticalDashboard.md
new file mode 100644
index 000000000..fb8eb816e
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeAnalyticalDashboard.md
@@ -0,0 +1,16 @@
+# DeclarativeAnalyticalDashboard
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
+**id** | **str** | Analytical dashboard ID. |
+**title** | **str** | Analytical dashboard title. |
+**description** | **str** | Analytical dashboard description. | [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]
+
+[[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/DeclarativeAnalytics.md b/gooddata-api-client/docs/DeclarativeAnalytics.md
new file mode 100644
index 000000000..8441e8d20
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeAnalytics.md
@@ -0,0 +1,13 @@
+# DeclarativeAnalytics
+
+Entities describing users' view on data.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**analytics** | [**DeclarativeAnalyticsLayer**](DeclarativeAnalyticsLayer.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/DeclarativeAnalyticsLayer.md b/gooddata-api-client/docs/DeclarativeAnalyticsLayer.md
new file mode 100644
index 000000000..4e9981b96
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeAnalyticsLayer.md
@@ -0,0 +1,16 @@
+# DeclarativeAnalyticsLayer
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**analytical_dashboards** | [**[DeclarativeAnalyticalDashboard]**](DeclarativeAnalyticalDashboard.md) | A list of analytical dashboards available in the model. | [optional]
+**dashboard_plugins** | [**[DeclarativeDashboardPlugin]**](DeclarativeDashboardPlugin.md) | A list of dashboard plugins available in the model. | [optional]
+**filter_contexts** | [**[DeclarativeFilterContext]**](DeclarativeFilterContext.md) | A list of filter contexts available in the model. | [optional]
+**metrics** | [**[DeclarativeMetric]**](DeclarativeMetric.md) | A list of metrics available in the model. | [optional]
+**visualization_objects** | [**[DeclarativeVisualizationObject]**](DeclarativeVisualizationObject.md) | A list of visualization objects available in the model. | [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/DeclarativeAttribute.md b/gooddata-api-client/docs/DeclarativeAttribute.md
new file mode 100644
index 000000000..4f586e9a2
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeAttribute.md
@@ -0,0 +1,21 @@
+# DeclarativeAttribute
+
+A dataset attribute.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Attribute ID. |
+**labels** | [**[DeclarativeLabel]**](DeclarativeLabel.md) | An array of attribute labels. |
+**source_column** | **str** | A name of the source column that is the primary label |
+**title** | **str** | Attribute title. |
+**default_view** | [**LabelIdentifier**](LabelIdentifier.md) | | [optional]
+**description** | **str** | Attribute description. | [optional]
+**sort_column** | **str** | Attribute sort column. | [optional]
+**sort_direction** | **str** | Attribute sort direction. | [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]
+
+[[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/DeclarativeColorPalette.md b/gooddata-api-client/docs/DeclarativeColorPalette.md
new file mode 100644
index 000000000..72414681e
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeColorPalette.md
@@ -0,0 +1,15 @@
+# DeclarativeColorPalette
+
+Color palette and its properties.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
+**id** | **str** | |
+**name** | **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/DeclarativeColumn.md b/gooddata-api-client/docs/DeclarativeColumn.md
new file mode 100644
index 000000000..db447c8e6
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeColumn.md
@@ -0,0 +1,17 @@
+# DeclarativeColumn
+
+A table column.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data_type** | **str** | Column type |
+**name** | **str** | Column name |
+**is_primary_key** | **bool** | Is column part of primary key? | [optional]
+**referenced_table_column** | **str** | Referenced table (Foreign key) | [optional]
+**referenced_table_id** | **str** | Referenced table (Foreign key) | [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/DeclarativeCspDirective.md b/gooddata-api-client/docs/DeclarativeCspDirective.md
new file mode 100644
index 000000000..4f8440376
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeCspDirective.md
@@ -0,0 +1,13 @@
+# DeclarativeCspDirective
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**directive** | **str** | |
+**sources** | **[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/DeclarativeDashboardPlugin.md b/gooddata-api-client/docs/DeclarativeDashboardPlugin.md
new file mode 100644
index 000000000..92fac3c0e
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeDashboardPlugin.md
@@ -0,0 +1,16 @@
+# DeclarativeDashboardPlugin
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
+**id** | **str** | Dashboard plugin object ID. |
+**title** | **str** | Dashboard plugin object title. |
+**description** | **str** | Dashboard plugin description. | [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]
+
+[[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/DeclarativeDataSource.md b/gooddata-api-client/docs/DeclarativeDataSource.md
new file mode 100644
index 000000000..2faee5b21
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeDataSource.md
@@ -0,0 +1,26 @@
+# DeclarativeDataSource
+
+A data source and its properties.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Data source ID. |
+**name** | **str** | Name of the data source. |
+**schema** | **str** | A scheme/database with the data. |
+**type** | **str** | Type of database. |
+**cache_path** | **[str]** | Path to schema, where intermediate caches are stored. | [optional]
+**decoded_parameters** | [**[Parameter]**](Parameter.md) | | [optional]
+**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
+**parameters** | [**[Parameter]**](Parameter.md) | | [optional]
+**password** | **str** | Password for the data-source user, property is never returned back. | [optional]
+**pdm** | [**DeclarativeTables**](DeclarativeTables.md) | | [optional]
+**permissions** | [**[DeclarativeDataSourcePermission]**](DeclarativeDataSourcePermission.md) | | [optional]
+**token** | **str** | Token as an alternative to username and password. | [optional]
+**url** | **str** | An connection string relevant to type of database. | [optional]
+**username** | **str** | User with permission connect the data source/database. | [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/DeclarativeDataSourcePermission.md b/gooddata-api-client/docs/DeclarativeDataSourcePermission.md
new file mode 100644
index 000000000..54c77d54d
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeDataSourcePermission.md
@@ -0,0 +1,13 @@
+# DeclarativeDataSourcePermission
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assignee** | [**AssigneeIdentifier**](AssigneeIdentifier.md) | |
+**name** | **str** | Permission name. |
+**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/DeclarativeDataSources.md b/gooddata-api-client/docs/DeclarativeDataSources.md
new file mode 100644
index 000000000..5f2420837
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeDataSources.md
@@ -0,0 +1,13 @@
+# DeclarativeDataSources
+
+A data source and its properties.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data_sources** | [**[DeclarativeDataSource]**](DeclarativeDataSource.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/DeclarativeDataset.md b/gooddata-api-client/docs/DeclarativeDataset.md
new file mode 100644
index 000000000..442b44fc3
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeDataset.md
@@ -0,0 +1,21 @@
+# DeclarativeDataset
+
+A dataset defined by its properties.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**grain** | [**[GrainIdentifier]**](GrainIdentifier.md) | An array of grain identifiers. |
+**id** | **str** | The Dataset ID. This ID is further used to refer to this instance of dataset. |
+**references** | [**[DeclarativeReference]**](DeclarativeReference.md) | An array of references. |
+**title** | **str** | A dataset title. |
+**attributes** | [**[DeclarativeAttribute]**](DeclarativeAttribute.md) | An array of attributes. | [optional]
+**data_source_table_id** | [**DataSourceTableIdentifier**](DataSourceTableIdentifier.md) | | [optional]
+**description** | **str** | A dataset description. | [optional]
+**facts** | [**[DeclarativeFact]**](DeclarativeFact.md) | An array of facts. | [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]
+
+[[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/DeclarativeDateDataset.md b/gooddata-api-client/docs/DeclarativeDateDataset.md
new file mode 100644
index 000000000..606945cc1
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeDateDataset.md
@@ -0,0 +1,18 @@
+# DeclarativeDateDataset
+
+A date dataset.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**granularities** | **[str]** | An array of date granularities. All listed granularities will be available for date dataset. |
+**granularities_formatting** | [**GranularitiesFormatting**](GranularitiesFormatting.md) | |
+**id** | **str** | Date dataset ID. |
+**title** | **str** | Date dataset title. |
+**description** | **str** | Date dataset description. | [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]
+
+[[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/DeclarativeFact.md b/gooddata-api-client/docs/DeclarativeFact.md
new file mode 100644
index 000000000..ba6549ca4
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeFact.md
@@ -0,0 +1,17 @@
+# DeclarativeFact
+
+A dataset fact.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Fact ID. |
+**source_column** | **str** | A name of the source column in the table. |
+**title** | **str** | Fact title. |
+**description** | **str** | Fact description. | [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]
+
+[[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/DeclarativeFilterContext.md b/gooddata-api-client/docs/DeclarativeFilterContext.md
new file mode 100644
index 000000000..f5af86feb
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeFilterContext.md
@@ -0,0 +1,16 @@
+# DeclarativeFilterContext
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
+**id** | **str** | Filter Context ID. |
+**title** | **str** | Filter Context title. |
+**description** | **str** | Filter Context description. | [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]
+
+[[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/DeclarativeLabel.md b/gooddata-api-client/docs/DeclarativeLabel.md
new file mode 100644
index 000000000..cbf9d7b8f
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeLabel.md
@@ -0,0 +1,18 @@
+# DeclarativeLabel
+
+A attribute label.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Label ID. |
+**source_column** | **str** | A name of the source column in the table. |
+**title** | **str** | Label title. |
+**description** | **str** | Label description. | [optional]
+**tags** | **[str]** | A list of tags. | [optional]
+**value_type** | **str** | Specific type of label | [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/DeclarativeLdm.md b/gooddata-api-client/docs/DeclarativeLdm.md
new file mode 100644
index 000000000..c1dea9e3b
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeLdm.md
@@ -0,0 +1,14 @@
+# DeclarativeLdm
+
+A logical data model (LDM) representation.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**datasets** | [**[DeclarativeDataset]**](DeclarativeDataset.md) | An array containing datasets. | [optional]
+**date_instances** | [**[DeclarativeDateDataset]**](DeclarativeDateDataset.md) | An array containing date-related datasets. | [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/DeclarativeMetric.md b/gooddata-api-client/docs/DeclarativeMetric.md
new file mode 100644
index 000000000..061bb3ba6
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeMetric.md
@@ -0,0 +1,16 @@
+# DeclarativeMetric
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
+**id** | **str** | Metric ID. |
+**title** | **str** | Metric title. |
+**description** | **str** | Metric description. | [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]
+
+[[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/DeclarativeModel.md b/gooddata-api-client/docs/DeclarativeModel.md
new file mode 100644
index 000000000..b184f340b
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeModel.md
@@ -0,0 +1,13 @@
+# DeclarativeModel
+
+A data model structured as a set of its attributes.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ldm** | [**DeclarativeLdm**](DeclarativeLdm.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/DeclarativeOrganization.md b/gooddata-api-client/docs/DeclarativeOrganization.md
new file mode 100644
index 000000000..30cda922e
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeOrganization.md
@@ -0,0 +1,18 @@
+# DeclarativeOrganization
+
+Complete definition of an organization in a declarative form.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**organization** | [**DeclarativeOrganizationInfo**](DeclarativeOrganizationInfo.md) | |
+**data_sources** | [**[DeclarativeDataSource]**](DeclarativeDataSource.md) | | [optional]
+**user_groups** | [**[DeclarativeUserGroup]**](DeclarativeUserGroup.md) | | [optional]
+**users** | [**[DeclarativeUser]**](DeclarativeUser.md) | | [optional]
+**workspace_data_filters** | [**[DeclarativeWorkspaceDataFilter]**](DeclarativeWorkspaceDataFilter.md) | | [optional]
+**workspaces** | [**[DeclarativeWorkspace]**](DeclarativeWorkspace.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/DeclarativeOrganizationInfo.md b/gooddata-api-client/docs/DeclarativeOrganizationInfo.md
new file mode 100644
index 000000000..6e04ea0c7
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeOrganizationInfo.md
@@ -0,0 +1,25 @@
+# DeclarativeOrganizationInfo
+
+Information available about an organization.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**hostname** | **str** | Formal hostname used in deployment. |
+**id** | **str** | Identifier of the organization. |
+**name** | **str** | Formal name of the organization. |
+**permissions** | [**[DeclarativeOrganizationPermission]**](DeclarativeOrganizationPermission.md) | |
+**color_palettes** | [**[DeclarativeColorPalette]**](DeclarativeColorPalette.md) | A list of color palettes. | [optional]
+**csp_directives** | [**[DeclarativeCspDirective]**](DeclarativeCspDirective.md) | A list of CSP directives. | [optional]
+**early_access** | **str** | Early access defined on level Organization | [optional]
+**oauth_client_id** | **str** | Identifier of the authentication provider | [optional]
+**oauth_client_secret** | **str** | Communication secret of the authentication provider (never returned back). | [optional]
+**oauth_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** | URI of the authentication provider. | [optional]
+**settings** | [**[DeclarativeSetting]**](DeclarativeSetting.md) | A list of organization settings. | [optional]
+**themes** | [**[DeclarativeTheme]**](DeclarativeTheme.md) | A list of themes. | [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/DeclarativeOrganizationPermission.md b/gooddata-api-client/docs/DeclarativeOrganizationPermission.md
new file mode 100644
index 000000000..e4bf69e76
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeOrganizationPermission.md
@@ -0,0 +1,14 @@
+# DeclarativeOrganizationPermission
+
+Definition of a permission assigned to a user/user-group.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assignee** | [**AssigneeIdentifier**](AssigneeIdentifier.md) | |
+**name** | **str** | Permission name. | defaults to "MANAGE"
+**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/DeclarativePdm.md b/gooddata-api-client/docs/DeclarativePdm.md
new file mode 100644
index 000000000..86e053b98
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativePdm.md
@@ -0,0 +1,13 @@
+# DeclarativePdm
+
+A physical data model (PDM) representation for single data source.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**pdm** | [**DeclarativeTables**](DeclarativeTables.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/DeclarativeReference.md b/gooddata-api-client/docs/DeclarativeReference.md
new file mode 100644
index 000000000..a89cc886e
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeReference.md
@@ -0,0 +1,15 @@
+# DeclarativeReference
+
+A dataset reference.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**identifier** | [**ReferenceIdentifier**](ReferenceIdentifier.md) | |
+**multivalue** | **bool** | The multi-value flag enables many-to-many cardinality for references. |
+**source_columns** | **[str]** | An array of source column names for a given 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/DeclarativeSetting.md b/gooddata-api-client/docs/DeclarativeSetting.md
new file mode 100644
index 000000000..77c4edf23
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeSetting.md
@@ -0,0 +1,14 @@
+# DeclarativeSetting
+
+Setting and its value.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Setting ID. |
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. | [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/DeclarativeSingleWorkspacePermission.md b/gooddata-api-client/docs/DeclarativeSingleWorkspacePermission.md
new file mode 100644
index 000000000..7e040edee
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeSingleWorkspacePermission.md
@@ -0,0 +1,13 @@
+# DeclarativeSingleWorkspacePermission
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assignee** | [**AssigneeIdentifier**](AssigneeIdentifier.md) | |
+**name** | **str** | Permission name. |
+**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/DeclarativeTable.md b/gooddata-api-client/docs/DeclarativeTable.md
new file mode 100644
index 000000000..c8f725e84
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeTable.md
@@ -0,0 +1,17 @@
+# DeclarativeTable
+
+A database table.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**columns** | [**[DeclarativeColumn]**](DeclarativeColumn.md) | An array of physical columns |
+**id** | **str** | Table id. |
+**path** | **[str]** | Path to table. |
+**type** | **str** | Table type: TABLE or VIEW. |
+**name_prefix** | **str** | Table or view name prefix used in scan. Will be stripped when generating LDM. | [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/DeclarativeTables.md b/gooddata-api-client/docs/DeclarativeTables.md
new file mode 100644
index 000000000..1e7db802b
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeTables.md
@@ -0,0 +1,13 @@
+# DeclarativeTables
+
+A physical data model (PDM) tables.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**tables** | [**[DeclarativeTable]**](DeclarativeTable.md) | An array of physical database tables. |
+**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/DeclarativeTheme.md b/gooddata-api-client/docs/DeclarativeTheme.md
new file mode 100644
index 000000000..b8b6c2cae
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeTheme.md
@@ -0,0 +1,15 @@
+# DeclarativeTheme
+
+Theme and its properties.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
+**id** | **str** | |
+**name** | **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/DeclarativeUser.md b/gooddata-api-client/docs/DeclarativeUser.md
new file mode 100644
index 000000000..035607338
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeUser.md
@@ -0,0 +1,16 @@
+# DeclarativeUser
+
+A user and its properties
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | User identifier. |
+**auth_id** | **str** | User identification in the authentication manager. | [optional]
+**settings** | [**[DeclarativeSetting]**](DeclarativeSetting.md) | A list of user settings. | [optional]
+**user_groups** | [**[UserGroupIdentifier]**](UserGroupIdentifier.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/DeclarativeUserGroup.md b/gooddata-api-client/docs/DeclarativeUserGroup.md
new file mode 100644
index 000000000..4b67a90c3
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeUserGroup.md
@@ -0,0 +1,14 @@
+# DeclarativeUserGroup
+
+A user-group and its properties
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | UserGroup identifier. |
+**parents** | [**[UserGroupIdentifier]**](UserGroupIdentifier.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/DeclarativeUserGroups.md b/gooddata-api-client/docs/DeclarativeUserGroups.md
new file mode 100644
index 000000000..9cfcf01a6
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeUserGroups.md
@@ -0,0 +1,13 @@
+# DeclarativeUserGroups
+
+Declarative form of userGroups and its properties.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**user_groups** | [**[DeclarativeUserGroup]**](DeclarativeUserGroup.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/DeclarativeUsers.md b/gooddata-api-client/docs/DeclarativeUsers.md
new file mode 100644
index 000000000..ea5d50039
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeUsers.md
@@ -0,0 +1,13 @@
+# DeclarativeUsers
+
+Declarative form of users and its properties.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**users** | [**[DeclarativeUser]**](DeclarativeUser.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/DeclarativeUsersUserGroups.md b/gooddata-api-client/docs/DeclarativeUsersUserGroups.md
new file mode 100644
index 000000000..e04a6910d
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeUsersUserGroups.md
@@ -0,0 +1,14 @@
+# DeclarativeUsersUserGroups
+
+Declarative form of both users and user groups and theirs properties.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**user_groups** | [**[DeclarativeUserGroup]**](DeclarativeUserGroup.md) | |
+**users** | [**[DeclarativeUser]**](DeclarativeUser.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/DeclarativeVisualizationObject.md b/gooddata-api-client/docs/DeclarativeVisualizationObject.md
new file mode 100644
index 000000000..353780e51
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeVisualizationObject.md
@@ -0,0 +1,16 @@
+# DeclarativeVisualizationObject
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
+**id** | **str** | Visualization object ID. |
+**title** | **str** | Visualization object title. |
+**description** | **str** | Visualization object description. | [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]
+
+[[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/DeclarativeWorkspace.md b/gooddata-api-client/docs/DeclarativeWorkspace.md
new file mode 100644
index 000000000..a169fc87a
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeWorkspace.md
@@ -0,0 +1,21 @@
+# DeclarativeWorkspace
+
+A declarative form of a particular workspace.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Identifier of a workspace |
+**name** | **str** | Name of a workspace to view. |
+**description** | **str** | Description of the workspace | [optional]
+**early_access** | **str** | Early access defined on level Workspace | [optional]
+**hierarchy_permissions** | [**[DeclarativeWorkspaceHierarchyPermission]**](DeclarativeWorkspaceHierarchyPermission.md) | | [optional]
+**model** | [**DeclarativeWorkspaceModel**](DeclarativeWorkspaceModel.md) | | [optional]
+**parent** | [**WorkspaceIdentifier**](WorkspaceIdentifier.md) | | [optional]
+**permissions** | [**[DeclarativeSingleWorkspacePermission]**](DeclarativeSingleWorkspacePermission.md) | | [optional]
+**settings** | [**[DeclarativeSetting]**](DeclarativeSetting.md) | A list of workspace settings. | [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/DeclarativeWorkspaceDataFilter.md b/gooddata-api-client/docs/DeclarativeWorkspaceDataFilter.md
new file mode 100644
index 000000000..5939192f6
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeWorkspaceDataFilter.md
@@ -0,0 +1,18 @@
+# DeclarativeWorkspaceDataFilter
+
+Workspace Data Filters serving the filtering of what data users can see in workspaces.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**column_name** | **str** | Workspace Data Filters column name. Data are filtered using this physical column. |
+**id** | **str** | Workspace Data Filters ID. This ID is further used to refer to this instance. |
+**title** | **str** | Workspace Data Filters title. |
+**workspace_data_filter_settings** | [**[DeclarativeWorkspaceDataFilterSetting]**](DeclarativeWorkspaceDataFilterSetting.md) | Filter settings specifying values of filters valid for the workspace. |
+**description** | **str** | Workspace Data Filters description. | [optional]
+**workspace** | [**WorkspaceIdentifier**](WorkspaceIdentifier.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/DeclarativeWorkspaceDataFilterSetting.md b/gooddata-api-client/docs/DeclarativeWorkspaceDataFilterSetting.md
new file mode 100644
index 000000000..34256e5c6
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeWorkspaceDataFilterSetting.md
@@ -0,0 +1,17 @@
+# DeclarativeWorkspaceDataFilterSetting
+
+Workspace Data Filters serving the filtering of what data users can see in workspaces.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**filter_values** | **[str]** | Only those rows are returned, where columnName from filter matches those values. |
+**id** | **str** | Workspace Data Filters ID. This ID is further used to refer to this instance. |
+**title** | **str** | Workspace Data Filters setting title. |
+**workspace** | [**WorkspaceIdentifier**](WorkspaceIdentifier.md) | |
+**description** | **str** | Workspace Data Filters setting description. | [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/DeclarativeWorkspaceDataFilters.md b/gooddata-api-client/docs/DeclarativeWorkspaceDataFilters.md
new file mode 100644
index 000000000..255d63aa1
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeWorkspaceDataFilters.md
@@ -0,0 +1,13 @@
+# DeclarativeWorkspaceDataFilters
+
+Declarative form of data filters.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**workspace_data_filters** | [**[DeclarativeWorkspaceDataFilter]**](DeclarativeWorkspaceDataFilter.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/DeclarativeWorkspaceHierarchyPermission.md b/gooddata-api-client/docs/DeclarativeWorkspaceHierarchyPermission.md
new file mode 100644
index 000000000..cae74fdb1
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeWorkspaceHierarchyPermission.md
@@ -0,0 +1,13 @@
+# DeclarativeWorkspaceHierarchyPermission
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assignee** | [**AssigneeIdentifier**](AssigneeIdentifier.md) | |
+**name** | **str** | Permission name. |
+**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/DeclarativeWorkspaceModel.md b/gooddata-api-client/docs/DeclarativeWorkspaceModel.md
new file mode 100644
index 000000000..6566d3612
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeWorkspaceModel.md
@@ -0,0 +1,14 @@
+# DeclarativeWorkspaceModel
+
+A declarative form of a model and analytics for a workspace.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**analytics** | [**DeclarativeAnalyticsLayer**](DeclarativeAnalyticsLayer.md) | | [optional]
+**ldm** | [**DeclarativeLdm**](DeclarativeLdm.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/DeclarativeWorkspacePermissions.md b/gooddata-api-client/docs/DeclarativeWorkspacePermissions.md
new file mode 100644
index 000000000..0df396ef0
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeWorkspacePermissions.md
@@ -0,0 +1,14 @@
+# DeclarativeWorkspacePermissions
+
+Definition of permissions associated with a workspace.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**hierarchy_permissions** | [**[DeclarativeWorkspaceHierarchyPermission]**](DeclarativeWorkspaceHierarchyPermission.md) | | [optional]
+**permissions** | [**[DeclarativeSingleWorkspacePermission]**](DeclarativeSingleWorkspacePermission.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/DeclarativeWorkspaces.md b/gooddata-api-client/docs/DeclarativeWorkspaces.md
new file mode 100644
index 000000000..1bf67d5cf
--- /dev/null
+++ b/gooddata-api-client/docs/DeclarativeWorkspaces.md
@@ -0,0 +1,14 @@
+# DeclarativeWorkspaces
+
+A declarative form of a all workspace layout.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**workspace_data_filters** | [**[DeclarativeWorkspaceDataFilter]**](DeclarativeWorkspaceDataFilter.md) | |
+**workspaces** | [**[DeclarativeWorkspace]**](DeclarativeWorkspace.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/DependentEntitiesGraph.md b/gooddata-api-client/docs/DependentEntitiesGraph.md
new file mode 100644
index 000000000..b57440261
--- /dev/null
+++ b/gooddata-api-client/docs/DependentEntitiesGraph.md
@@ -0,0 +1,13 @@
+# DependentEntitiesGraph
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**edges** | [**[[EntityIdentifier]]**](EntityIdentifier.md) | |
+**nodes** | [**[DependentEntitiesNode]**](DependentEntitiesNode.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/DependentEntitiesNode.md b/gooddata-api-client/docs/DependentEntitiesNode.md
new file mode 100644
index 000000000..7a5dacb25
--- /dev/null
+++ b/gooddata-api-client/docs/DependentEntitiesNode.md
@@ -0,0 +1,14 @@
+# DependentEntitiesNode
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | |
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/DependentEntitiesRequest.md b/gooddata-api-client/docs/DependentEntitiesRequest.md
new file mode 100644
index 000000000..248fd5953
--- /dev/null
+++ b/gooddata-api-client/docs/DependentEntitiesRequest.md
@@ -0,0 +1,12 @@
+# DependentEntitiesRequest
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**identifiers** | [**[EntityIdentifier]**](EntityIdentifier.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/DependentEntitiesResponse.md b/gooddata-api-client/docs/DependentEntitiesResponse.md
new file mode 100644
index 000000000..b0a04bc5d
--- /dev/null
+++ b/gooddata-api-client/docs/DependentEntitiesResponse.md
@@ -0,0 +1,12 @@
+# DependentEntitiesResponse
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**graph** | [**DependentEntitiesGraph**](DependentEntitiesGraph.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/Dimension.md b/gooddata-api-client/docs/Dimension.md
new file mode 100644
index 000000000..7dda3d452
--- /dev/null
+++ b/gooddata-api-client/docs/Dimension.md
@@ -0,0 +1,15 @@
+# Dimension
+
+Single dimension description.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**item_identifiers** | **[str]** | List of items in current dimension. Can reference 'localIdentifier' from 'AttributeItem', or special pseudo attribute \"measureGroup\" representing list of metrics. |
+**local_identifier** | **str** | Dimension identification within requests. Other entities can reference this dimension by this value. | [optional]
+**sorting** | [**[SortKey]**](SortKey.md) | List of sorting rules. From most relevant to least relevant (less relevant rule is applied, when more relevant rule compares items as equal). | [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/DimensionHeader.md b/gooddata-api-client/docs/DimensionHeader.md
new file mode 100644
index 000000000..03281794e
--- /dev/null
+++ b/gooddata-api-client/docs/DimensionHeader.md
@@ -0,0 +1,13 @@
+# DimensionHeader
+
+Contains the dimension-specific header information.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**header_groups** | [**[HeaderGroup]**](HeaderGroup.md) | An array containing header groups. |
+**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/Element.md b/gooddata-api-client/docs/Element.md
new file mode 100644
index 000000000..f8534ff69
--- /dev/null
+++ b/gooddata-api-client/docs/Element.md
@@ -0,0 +1,14 @@
+# Element
+
+List of returned elements.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**primary_title** | **str** | Title of primary label of attribute owning requested label or null if the primary label is excluded |
+**title** | **str** | Title of requested label. |
+**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/ElementsRequest.md b/gooddata-api-client/docs/ElementsRequest.md
new file mode 100644
index 000000000..7e75342e6
--- /dev/null
+++ b/gooddata-api-client/docs/ElementsRequest.md
@@ -0,0 +1,19 @@
+# ElementsRequest
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**label** | **str** | Requested label. |
+**complement_filter** | **bool** | Inverse filters: * ```false``` - return items matching ```patternFilter``` and ```exactFilter``` * ```true``` - return items not matching ```patternFilter``` and ```exactFilter``` | [optional] if omitted the server will use the default value of False
+**data_sampling_percentage** | **float** | Specifies percentage of source table data scanned during the computation. This field is deprecated and is no longer used during the elements computation. | [optional] if omitted the server will use the default value of 100
+**exact_filter** | **[str]** | Return only items, whose ```label``` title exactly matches one of ```filter```. | [optional]
+**exclude_primary_label** | **bool** | Excludes items from the result that differ only by primary label * ```false``` - return items with distinct primary label * ```true``` - return items with distinct requested label | [optional] if omitted the server will use the default value of False
+**filter_by** | [**FilterBy**](FilterBy.md) | | [optional]
+**pattern_filter** | **str** | Return only items, whose ```label``` title case insensitively contains ```filter``` as substring. | [optional]
+**sort_order** | **str** | Sort order of returned items. Items are sorted by ```label``` title. If no sort order is specified then attribute's ```sortDirection``` is used, which is ASC by default | [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/ElementsResponse.md b/gooddata-api-client/docs/ElementsResponse.md
new file mode 100644
index 000000000..a5bd134bb
--- /dev/null
+++ b/gooddata-api-client/docs/ElementsResponse.md
@@ -0,0 +1,15 @@
+# ElementsResponse
+
+Entity holding list of sorted & filtered label elements, related primary label of attribute owning requested label and paging.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**elements** | [**[Element]**](Element.md) | List of returned elements. |
+**paging** | [**Paging**](Paging.md) | |
+**primary_label** | [**RestApiIdentifier**](RestApiIdentifier.md) | |
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/EntitiesApi.md b/gooddata-api-client/docs/EntitiesApi.md
new file mode 100644
index 000000000..73287a0d5
--- /dev/null
+++ b/gooddata-api-client/docs/EntitiesApi.md
@@ -0,0 +1,10544 @@
+# gooddata_api_client.EntitiesApi
+
+All URIs are relative to *http://localhost*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_entity_analytical_dashboards**](EntitiesApi.md#create_entity_analytical_dashboards) | **POST** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards |
+[**create_entity_api_tokens**](EntitiesApi.md#create_entity_api_tokens) | **POST** /api/v1/entities/users/{userId}/apiTokens |
+[**create_entity_color_palettes**](EntitiesApi.md#create_entity_color_palettes) | **POST** /api/v1/entities/colorPalettes |
+[**create_entity_csp_directives**](EntitiesApi.md#create_entity_csp_directives) | **POST** /api/v1/entities/cspDirectives |
+[**create_entity_dashboard_plugins**](EntitiesApi.md#create_entity_dashboard_plugins) | **POST** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins |
+[**create_entity_data_sources**](EntitiesApi.md#create_entity_data_sources) | **POST** /api/v1/entities/dataSources |
+[**create_entity_filter_contexts**](EntitiesApi.md#create_entity_filter_contexts) | **POST** /api/v1/entities/workspaces/{workspaceId}/filterContexts |
+[**create_entity_metrics**](EntitiesApi.md#create_entity_metrics) | **POST** /api/v1/entities/workspaces/{workspaceId}/metrics |
+[**create_entity_organization_settings**](EntitiesApi.md#create_entity_organization_settings) | **POST** /api/v1/entities/organizationSettings |
+[**create_entity_themes**](EntitiesApi.md#create_entity_themes) | **POST** /api/v1/entities/themes |
+[**create_entity_user_groups**](EntitiesApi.md#create_entity_user_groups) | **POST** /api/v1/entities/userGroups |
+[**create_entity_user_settings**](EntitiesApi.md#create_entity_user_settings) | **POST** /api/v1/entities/users/{userId}/userSettings |
+[**create_entity_users**](EntitiesApi.md#create_entity_users) | **POST** /api/v1/entities/users |
+[**create_entity_visualization_objects**](EntitiesApi.md#create_entity_visualization_objects) | **POST** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects |
+[**create_entity_workspace_data_filters**](EntitiesApi.md#create_entity_workspace_data_filters) | **POST** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters |
+[**create_entity_workspace_settings**](EntitiesApi.md#create_entity_workspace_settings) | **POST** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings |
+[**create_entity_workspaces**](EntitiesApi.md#create_entity_workspaces) | **POST** /api/v1/entities/workspaces |
+[**delete_entity_analytical_dashboards**](EntitiesApi.md#delete_entity_analytical_dashboards) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId} |
+[**delete_entity_api_tokens**](EntitiesApi.md#delete_entity_api_tokens) | **DELETE** /api/v1/entities/users/{userId}/apiTokens/{id} |
+[**delete_entity_color_palettes**](EntitiesApi.md#delete_entity_color_palettes) | **DELETE** /api/v1/entities/colorPalettes/{id} |
+[**delete_entity_csp_directives**](EntitiesApi.md#delete_entity_csp_directives) | **DELETE** /api/v1/entities/cspDirectives/{id} |
+[**delete_entity_dashboard_plugins**](EntitiesApi.md#delete_entity_dashboard_plugins) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId} |
+[**delete_entity_data_sources**](EntitiesApi.md#delete_entity_data_sources) | **DELETE** /api/v1/entities/dataSources/{id} |
+[**delete_entity_filter_contexts**](EntitiesApi.md#delete_entity_filter_contexts) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId} |
+[**delete_entity_metrics**](EntitiesApi.md#delete_entity_metrics) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} |
+[**delete_entity_organization_settings**](EntitiesApi.md#delete_entity_organization_settings) | **DELETE** /api/v1/entities/organizationSettings/{id} |
+[**delete_entity_themes**](EntitiesApi.md#delete_entity_themes) | **DELETE** /api/v1/entities/themes/{id} |
+[**delete_entity_user_groups**](EntitiesApi.md#delete_entity_user_groups) | **DELETE** /api/v1/entities/userGroups/{id} |
+[**delete_entity_user_settings**](EntitiesApi.md#delete_entity_user_settings) | **DELETE** /api/v1/entities/users/{userId}/userSettings/{id} |
+[**delete_entity_users**](EntitiesApi.md#delete_entity_users) | **DELETE** /api/v1/entities/users/{id} |
+[**delete_entity_visualization_objects**](EntitiesApi.md#delete_entity_visualization_objects) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId} |
+[**delete_entity_workspace_data_filters**](EntitiesApi.md#delete_entity_workspace_data_filters) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId} |
+[**delete_entity_workspace_settings**](EntitiesApi.md#delete_entity_workspace_settings) | **DELETE** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId} |
+[**delete_entity_workspaces**](EntitiesApi.md#delete_entity_workspaces) | **DELETE** /api/v1/entities/workspaces/{id} |
+[**get_all_entities_analytical_dashboards**](EntitiesApi.md#get_all_entities_analytical_dashboards) | **GET** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards |
+[**get_all_entities_api_tokens**](EntitiesApi.md#get_all_entities_api_tokens) | **GET** /api/v1/entities/users/{userId}/apiTokens |
+[**get_all_entities_attributes**](EntitiesApi.md#get_all_entities_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/attributes |
+[**get_all_entities_color_palettes**](EntitiesApi.md#get_all_entities_color_palettes) | **GET** /api/v1/entities/colorPalettes |
+[**get_all_entities_csp_directives**](EntitiesApi.md#get_all_entities_csp_directives) | **GET** /api/v1/entities/cspDirectives |
+[**get_all_entities_dashboard_plugins**](EntitiesApi.md#get_all_entities_dashboard_plugins) | **GET** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins |
+[**get_all_entities_data_source_identifiers**](EntitiesApi.md#get_all_entities_data_source_identifiers) | **GET** /api/v1/entities/dataSourceIdentifiers |
+[**get_all_entities_data_source_tables**](EntitiesApi.md#get_all_entities_data_source_tables) | **GET** /api/v1/entities/dataSources/{dataSourceId}/dataSourceTables |
+[**get_all_entities_data_sources**](EntitiesApi.md#get_all_entities_data_sources) | **GET** /api/v1/entities/dataSources |
+[**get_all_entities_datasets**](EntitiesApi.md#get_all_entities_datasets) | **GET** /api/v1/entities/workspaces/{workspaceId}/datasets |
+[**get_all_entities_entitlements**](EntitiesApi.md#get_all_entities_entitlements) | **GET** /api/v1/entities/entitlements |
+[**get_all_entities_facts**](EntitiesApi.md#get_all_entities_facts) | **GET** /api/v1/entities/workspaces/{workspaceId}/facts |
+[**get_all_entities_filter_contexts**](EntitiesApi.md#get_all_entities_filter_contexts) | **GET** /api/v1/entities/workspaces/{workspaceId}/filterContexts |
+[**get_all_entities_labels**](EntitiesApi.md#get_all_entities_labels) | **GET** /api/v1/entities/workspaces/{workspaceId}/labels |
+[**get_all_entities_metrics**](EntitiesApi.md#get_all_entities_metrics) | **GET** /api/v1/entities/workspaces/{workspaceId}/metrics |
+[**get_all_entities_organization_settings**](EntitiesApi.md#get_all_entities_organization_settings) | **GET** /api/v1/entities/organizationSettings |
+[**get_all_entities_themes**](EntitiesApi.md#get_all_entities_themes) | **GET** /api/v1/entities/themes |
+[**get_all_entities_user_groups**](EntitiesApi.md#get_all_entities_user_groups) | **GET** /api/v1/entities/userGroups |
+[**get_all_entities_user_settings**](EntitiesApi.md#get_all_entities_user_settings) | **GET** /api/v1/entities/users/{userId}/userSettings |
+[**get_all_entities_users**](EntitiesApi.md#get_all_entities_users) | **GET** /api/v1/entities/users |
+[**get_all_entities_visualization_objects**](EntitiesApi.md#get_all_entities_visualization_objects) | **GET** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects |
+[**get_all_entities_workspace_data_filter_settings**](EntitiesApi.md#get_all_entities_workspace_data_filter_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilterSettings |
+[**get_all_entities_workspace_data_filters**](EntitiesApi.md#get_all_entities_workspace_data_filters) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters |
+[**get_all_entities_workspace_settings**](EntitiesApi.md#get_all_entities_workspace_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings |
+[**get_all_entities_workspaces**](EntitiesApi.md#get_all_entities_workspaces) | **GET** /api/v1/entities/workspaces |
+[**get_all_options**](EntitiesApi.md#get_all_options) | **GET** /api/v1/options | Links for all configuration options
+[**get_data_source_drivers**](EntitiesApi.md#get_data_source_drivers) | **GET** /api/v1/options/availableDrivers | Get all available data source drivers
+[**get_entity_analytical_dashboards**](EntitiesApi.md#get_entity_analytical_dashboards) | **GET** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId} |
+[**get_entity_api_tokens**](EntitiesApi.md#get_entity_api_tokens) | **GET** /api/v1/entities/users/{userId}/apiTokens/{id} |
+[**get_entity_attributes**](EntitiesApi.md#get_entity_attributes) | **GET** /api/v1/entities/workspaces/{workspaceId}/attributes/{objectId} |
+[**get_entity_color_palettes**](EntitiesApi.md#get_entity_color_palettes) | **GET** /api/v1/entities/colorPalettes/{id} |
+[**get_entity_cookie_security_configurations**](EntitiesApi.md#get_entity_cookie_security_configurations) | **GET** /api/v1/entities/admin/cookieSecurityConfigurations/{id} |
+[**get_entity_csp_directives**](EntitiesApi.md#get_entity_csp_directives) | **GET** /api/v1/entities/cspDirectives/{id} |
+[**get_entity_dashboard_plugins**](EntitiesApi.md#get_entity_dashboard_plugins) | **GET** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId} |
+[**get_entity_data_source_identifiers**](EntitiesApi.md#get_entity_data_source_identifiers) | **GET** /api/v1/entities/dataSourceIdentifiers/{id} |
+[**get_entity_data_source_tables**](EntitiesApi.md#get_entity_data_source_tables) | **GET** /api/v1/entities/dataSources/{dataSourceId}/dataSourceTables/{id} |
+[**get_entity_data_sources**](EntitiesApi.md#get_entity_data_sources) | **GET** /api/v1/entities/dataSources/{id} |
+[**get_entity_datasets**](EntitiesApi.md#get_entity_datasets) | **GET** /api/v1/entities/workspaces/{workspaceId}/datasets/{objectId} |
+[**get_entity_entitlements**](EntitiesApi.md#get_entity_entitlements) | **GET** /api/v1/entities/entitlements/{id} |
+[**get_entity_facts**](EntitiesApi.md#get_entity_facts) | **GET** /api/v1/entities/workspaces/{workspaceId}/facts/{objectId} |
+[**get_entity_filter_contexts**](EntitiesApi.md#get_entity_filter_contexts) | **GET** /api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId} |
+[**get_entity_labels**](EntitiesApi.md#get_entity_labels) | **GET** /api/v1/entities/workspaces/{workspaceId}/labels/{objectId} |
+[**get_entity_metrics**](EntitiesApi.md#get_entity_metrics) | **GET** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} |
+[**get_entity_organization_settings**](EntitiesApi.md#get_entity_organization_settings) | **GET** /api/v1/entities/organizationSettings/{id} |
+[**get_entity_organizations**](EntitiesApi.md#get_entity_organizations) | **GET** /api/v1/entities/admin/organizations/{id} |
+[**get_entity_themes**](EntitiesApi.md#get_entity_themes) | **GET** /api/v1/entities/themes/{id} |
+[**get_entity_user_groups**](EntitiesApi.md#get_entity_user_groups) | **GET** /api/v1/entities/userGroups/{id} |
+[**get_entity_user_settings**](EntitiesApi.md#get_entity_user_settings) | **GET** /api/v1/entities/users/{userId}/userSettings/{id} |
+[**get_entity_users**](EntitiesApi.md#get_entity_users) | **GET** /api/v1/entities/users/{id} |
+[**get_entity_visualization_objects**](EntitiesApi.md#get_entity_visualization_objects) | **GET** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId} |
+[**get_entity_workspace_data_filter_settings**](EntitiesApi.md#get_entity_workspace_data_filter_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilterSettings/{objectId} |
+[**get_entity_workspace_data_filters**](EntitiesApi.md#get_entity_workspace_data_filters) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId} |
+[**get_entity_workspace_settings**](EntitiesApi.md#get_entity_workspace_settings) | **GET** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId} |
+[**get_entity_workspaces**](EntitiesApi.md#get_entity_workspaces) | **GET** /api/v1/entities/workspaces/{id} |
+[**get_organization**](EntitiesApi.md#get_organization) | **GET** /api/v1/entities/organization | Get current organization info
+[**patch_entity_analytical_dashboards**](EntitiesApi.md#patch_entity_analytical_dashboards) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId} |
+[**patch_entity_color_palettes**](EntitiesApi.md#patch_entity_color_palettes) | **PATCH** /api/v1/entities/colorPalettes/{id} |
+[**patch_entity_cookie_security_configurations**](EntitiesApi.md#patch_entity_cookie_security_configurations) | **PATCH** /api/v1/entities/admin/cookieSecurityConfigurations/{id} |
+[**patch_entity_csp_directives**](EntitiesApi.md#patch_entity_csp_directives) | **PATCH** /api/v1/entities/cspDirectives/{id} |
+[**patch_entity_dashboard_plugins**](EntitiesApi.md#patch_entity_dashboard_plugins) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId} |
+[**patch_entity_data_sources**](EntitiesApi.md#patch_entity_data_sources) | **PATCH** /api/v1/entities/dataSources/{id} |
+[**patch_entity_filter_contexts**](EntitiesApi.md#patch_entity_filter_contexts) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId} |
+[**patch_entity_metrics**](EntitiesApi.md#patch_entity_metrics) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} |
+[**patch_entity_organization_settings**](EntitiesApi.md#patch_entity_organization_settings) | **PATCH** /api/v1/entities/organizationSettings/{id} |
+[**patch_entity_organizations**](EntitiesApi.md#patch_entity_organizations) | **PATCH** /api/v1/entities/admin/organizations/{id} |
+[**patch_entity_themes**](EntitiesApi.md#patch_entity_themes) | **PATCH** /api/v1/entities/themes/{id} |
+[**patch_entity_user_groups**](EntitiesApi.md#patch_entity_user_groups) | **PATCH** /api/v1/entities/userGroups/{id} |
+[**patch_entity_users**](EntitiesApi.md#patch_entity_users) | **PATCH** /api/v1/entities/users/{id} |
+[**patch_entity_visualization_objects**](EntitiesApi.md#patch_entity_visualization_objects) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId} |
+[**patch_entity_workspace_data_filters**](EntitiesApi.md#patch_entity_workspace_data_filters) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId} |
+[**patch_entity_workspace_settings**](EntitiesApi.md#patch_entity_workspace_settings) | **PATCH** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId} |
+[**patch_entity_workspaces**](EntitiesApi.md#patch_entity_workspaces) | **PATCH** /api/v1/entities/workspaces/{id} |
+[**update_entity_analytical_dashboards**](EntitiesApi.md#update_entity_analytical_dashboards) | **PUT** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId} |
+[**update_entity_api_tokens**](EntitiesApi.md#update_entity_api_tokens) | **PUT** /api/v1/entities/users/{userId}/apiTokens/{id} |
+[**update_entity_color_palettes**](EntitiesApi.md#update_entity_color_palettes) | **PUT** /api/v1/entities/colorPalettes/{id} |
+[**update_entity_cookie_security_configurations**](EntitiesApi.md#update_entity_cookie_security_configurations) | **PUT** /api/v1/entities/admin/cookieSecurityConfigurations/{id} |
+[**update_entity_csp_directives**](EntitiesApi.md#update_entity_csp_directives) | **PUT** /api/v1/entities/cspDirectives/{id} |
+[**update_entity_dashboard_plugins**](EntitiesApi.md#update_entity_dashboard_plugins) | **PUT** /api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId} |
+[**update_entity_data_sources**](EntitiesApi.md#update_entity_data_sources) | **PUT** /api/v1/entities/dataSources/{id} |
+[**update_entity_filter_contexts**](EntitiesApi.md#update_entity_filter_contexts) | **PUT** /api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId} |
+[**update_entity_metrics**](EntitiesApi.md#update_entity_metrics) | **PUT** /api/v1/entities/workspaces/{workspaceId}/metrics/{objectId} |
+[**update_entity_organization_settings**](EntitiesApi.md#update_entity_organization_settings) | **PUT** /api/v1/entities/organizationSettings/{id} |
+[**update_entity_organizations**](EntitiesApi.md#update_entity_organizations) | **PUT** /api/v1/entities/admin/organizations/{id} |
+[**update_entity_themes**](EntitiesApi.md#update_entity_themes) | **PUT** /api/v1/entities/themes/{id} |
+[**update_entity_user_groups**](EntitiesApi.md#update_entity_user_groups) | **PUT** /api/v1/entities/userGroups/{id} |
+[**update_entity_user_settings**](EntitiesApi.md#update_entity_user_settings) | **PUT** /api/v1/entities/users/{userId}/userSettings/{id} |
+[**update_entity_users**](EntitiesApi.md#update_entity_users) | **PUT** /api/v1/entities/users/{id} |
+[**update_entity_visualization_objects**](EntitiesApi.md#update_entity_visualization_objects) | **PUT** /api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId} |
+[**update_entity_workspace_data_filters**](EntitiesApi.md#update_entity_workspace_data_filters) | **PUT** /api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId} |
+[**update_entity_workspace_settings**](EntitiesApi.md#update_entity_workspace_settings) | **PUT** /api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId} |
+[**update_entity_workspaces**](EntitiesApi.md#update_entity_workspaces) | **PUT** /api/v1/entities/workspaces/{id} |
+
+
+# **create_entity_analytical_dashboards**
+> JsonApiAnalyticalDashboardOutDocument create_entity_analytical_dashboards(workspace_id, json_api_analytical_dashboard_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_analytical_dashboard_in_document import JsonApiAnalyticalDashboardInDocument
+from gooddata_api_client.model.json_api_analytical_dashboard_out_document import JsonApiAnalyticalDashboardOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ json_api_analytical_dashboard_in_document = JsonApiAnalyticalDashboardInDocument(
+ data=JsonApiAnalyticalDashboardIn(
+ attributes=JsonApiAnalyticalDashboardInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="analyticalDashboard",
+ ),
+ ) # JsonApiAnalyticalDashboardInDocument |
+ include = [
+ "include=visualizationObjects,analyticalDashboards,labels,metrics,datasets,filterContexts,dashboardPlugins",
+ ] # [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
+ try:
+ api_response = api_instance.create_entity_analytical_dashboards(workspace_id, json_api_analytical_dashboard_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_analytical_dashboards: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.create_entity_analytical_dashboards(workspace_id, json_api_analytical_dashboard_in_document, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_analytical_dashboards: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **json_api_analytical_dashboard_in_document** | [**JsonApiAnalyticalDashboardInDocument**](JsonApiAnalyticalDashboardInDocument.md)| |
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiAnalyticalDashboardOutDocument**](JsonApiAnalyticalDashboardOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_api_tokens**
+> JsonApiApiTokenOutDocument create_entity_api_tokens(user_id, json_api_api_token_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_api_token_out_document import JsonApiApiTokenOutDocument
+from gooddata_api_client.model.json_api_api_token_in_document import JsonApiApiTokenInDocument
+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)
+ user_id = "userId_example" # str |
+ json_api_api_token_in_document = JsonApiApiTokenInDocument(
+ data=JsonApiApiTokenIn(
+ id="id1",
+ type="apiToken",
+ ),
+ ) # JsonApiApiTokenInDocument |
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_api_tokens(user_id, json_api_api_token_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_api_tokens: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**| |
+ **json_api_api_token_in_document** | [**JsonApiApiTokenInDocument**](JsonApiApiTokenInDocument.md)| |
+
+### Return type
+
+[**JsonApiApiTokenOutDocument**](JsonApiApiTokenOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_color_palettes**
+> JsonApiColorPaletteOutDocument create_entity_color_palettes(json_api_color_palette_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_color_palette_in_document import JsonApiColorPaletteInDocument
+from gooddata_api_client.model.json_api_color_palette_out_document import JsonApiColorPaletteOutDocument
+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)
+ json_api_color_palette_in_document = JsonApiColorPaletteInDocument(
+ data=JsonApiColorPaletteIn(
+ attributes=JsonApiColorPaletteInAttributes(
+ content={},
+ name="name_example",
+ ),
+ id="id1",
+ type="colorPalette",
+ ),
+ ) # JsonApiColorPaletteInDocument |
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_color_palettes(json_api_color_palette_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_color_palettes: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **json_api_color_palette_in_document** | [**JsonApiColorPaletteInDocument**](JsonApiColorPaletteInDocument.md)| |
+
+### Return type
+
+[**JsonApiColorPaletteOutDocument**](JsonApiColorPaletteOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_csp_directives**
+> JsonApiCspDirectiveOutDocument create_entity_csp_directives(json_api_csp_directive_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_csp_directive_out_document import JsonApiCspDirectiveOutDocument
+from gooddata_api_client.model.json_api_csp_directive_in_document import JsonApiCspDirectiveInDocument
+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)
+ json_api_csp_directive_in_document = JsonApiCspDirectiveInDocument(
+ data=JsonApiCspDirectiveIn(
+ attributes=JsonApiCspDirectiveInAttributes(
+ sources=[
+ "sources_example",
+ ],
+ ),
+ id="id1",
+ type="cspDirective",
+ ),
+ ) # JsonApiCspDirectiveInDocument |
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_csp_directives(json_api_csp_directive_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_csp_directives: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **json_api_csp_directive_in_document** | [**JsonApiCspDirectiveInDocument**](JsonApiCspDirectiveInDocument.md)| |
+
+### Return type
+
+[**JsonApiCspDirectiveOutDocument**](JsonApiCspDirectiveOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_dashboard_plugins**
+> JsonApiDashboardPluginOutDocument create_entity_dashboard_plugins(workspace_id, json_api_dashboard_plugin_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_dashboard_plugin_out_document import JsonApiDashboardPluginOutDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_in_document import JsonApiDashboardPluginInDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ json_api_dashboard_plugin_in_document = JsonApiDashboardPluginInDocument(
+ data=JsonApiDashboardPluginIn(
+ attributes=JsonApiDashboardPluginInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="dashboardPlugin",
+ ),
+ ) # JsonApiDashboardPluginInDocument |
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_dashboard_plugins(workspace_id, json_api_dashboard_plugin_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_dashboard_plugins: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **json_api_dashboard_plugin_in_document** | [**JsonApiDashboardPluginInDocument**](JsonApiDashboardPluginInDocument.md)| |
+
+### Return type
+
+[**JsonApiDashboardPluginOutDocument**](JsonApiDashboardPluginOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_data_sources**
+> JsonApiDataSourceOutDocument create_entity_data_sources(json_api_data_source_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_data_source_in_document import JsonApiDataSourceInDocument
+from gooddata_api_client.model.json_api_data_source_out_document import JsonApiDataSourceOutDocument
+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)
+ json_api_data_source_in_document = JsonApiDataSourceInDocument(
+ data=JsonApiDataSourceIn(
+ attributes=JsonApiDataSourceInAttributes(
+ cache_path=[
+ "cache_path_example",
+ ],
+ enable_caching=False,
+ name="name_example",
+ parameters=[
+ JsonApiDataSourceInAttributesParametersInner(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ password="password_example",
+ schema="schema_example",
+ token="token_example",
+ type="POSTGRESQL",
+ url="url_example",
+ username="username_example",
+ ),
+ id="id1",
+ type="dataSource",
+ ),
+ ) # JsonApiDataSourceInDocument |
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_data_sources(json_api_data_source_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_data_sources: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **json_api_data_source_in_document** | [**JsonApiDataSourceInDocument**](JsonApiDataSourceInDocument.md)| |
+
+### Return type
+
+[**JsonApiDataSourceOutDocument**](JsonApiDataSourceOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_filter_contexts**
+> JsonApiFilterContextOutDocument create_entity_filter_contexts(workspace_id, json_api_filter_context_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_filter_context_in_document import JsonApiFilterContextInDocument
+from gooddata_api_client.model.json_api_filter_context_out_document import JsonApiFilterContextOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ json_api_filter_context_in_document = JsonApiFilterContextInDocument(
+ data=JsonApiFilterContextIn(
+ attributes=JsonApiAnalyticalDashboardInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="filterContext",
+ ),
+ ) # JsonApiFilterContextInDocument |
+ include = [
+ "include=attributes,datasets,labels",
+ ] # [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
+ try:
+ api_response = api_instance.create_entity_filter_contexts(workspace_id, json_api_filter_context_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_filter_contexts: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.create_entity_filter_contexts(workspace_id, json_api_filter_context_in_document, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_filter_contexts: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **json_api_filter_context_in_document** | [**JsonApiFilterContextInDocument**](JsonApiFilterContextInDocument.md)| |
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiFilterContextOutDocument**](JsonApiFilterContextOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_metrics**
+> JsonApiMetricOutDocument create_entity_metrics(workspace_id, json_api_metric_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_metric_in_document import JsonApiMetricInDocument
+from gooddata_api_client.model.json_api_metric_out_document import JsonApiMetricOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ json_api_metric_in_document = JsonApiMetricInDocument(
+ data=JsonApiMetricIn(
+ attributes=JsonApiMetricInAttributes(
+ are_relations_valid=True,
+ content=JsonApiMetricInAttributesContent(
+ format="format_example",
+ maql="maql_example",
+ ),
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="metric",
+ ),
+ ) # JsonApiMetricInDocument |
+ include = [
+ "include=facts,attributes,labels,metrics,datasets",
+ ] # [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
+ try:
+ api_response = api_instance.create_entity_metrics(workspace_id, json_api_metric_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_metrics: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.create_entity_metrics(workspace_id, json_api_metric_in_document, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_metrics: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **json_api_metric_in_document** | [**JsonApiMetricInDocument**](JsonApiMetricInDocument.md)| |
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiMetricOutDocument**](JsonApiMetricOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_organization_settings**
+> JsonApiOrganizationSettingOutDocument create_entity_organization_settings(json_api_organization_setting_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_organization_setting_in_document import JsonApiOrganizationSettingInDocument
+from gooddata_api_client.model.json_api_organization_setting_out_document import JsonApiOrganizationSettingOutDocument
+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)
+ json_api_organization_setting_in_document = JsonApiOrganizationSettingInDocument(
+ data=JsonApiOrganizationSettingIn(
+ attributes=JsonApiOrganizationSettingInAttributes(
+ content={},
+ ),
+ id="id1",
+ type="organizationSetting",
+ ),
+ ) # JsonApiOrganizationSettingInDocument |
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_organization_settings(json_api_organization_setting_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_organization_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **json_api_organization_setting_in_document** | [**JsonApiOrganizationSettingInDocument**](JsonApiOrganizationSettingInDocument.md)| |
+
+### Return type
+
+[**JsonApiOrganizationSettingOutDocument**](JsonApiOrganizationSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_themes**
+> JsonApiThemeOutDocument create_entity_themes(json_api_theme_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_theme_in_document import JsonApiThemeInDocument
+from gooddata_api_client.model.json_api_theme_out_document import JsonApiThemeOutDocument
+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)
+ json_api_theme_in_document = JsonApiThemeInDocument(
+ data=JsonApiThemeIn(
+ attributes=JsonApiColorPaletteInAttributes(
+ content={},
+ name="name_example",
+ ),
+ id="id1",
+ type="theme",
+ ),
+ ) # JsonApiThemeInDocument |
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_themes(json_api_theme_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_themes: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **json_api_theme_in_document** | [**JsonApiThemeInDocument**](JsonApiThemeInDocument.md)| |
+
+### Return type
+
+[**JsonApiThemeOutDocument**](JsonApiThemeOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_user_groups**
+> JsonApiUserGroupOutDocument create_entity_user_groups(json_api_user_group_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_group_in_document import JsonApiUserGroupInDocument
+from gooddata_api_client.model.json_api_user_group_out_document import JsonApiUserGroupOutDocument
+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)
+ json_api_user_group_in_document = JsonApiUserGroupInDocument(
+ data=JsonApiUserGroupIn(
+ id="id1",
+ relationships=JsonApiUserGroupInRelationships(
+ parents=JsonApiUserGroupInRelationshipsParents(
+ data=JsonApiUserGroupToManyLinkage([
+ JsonApiUserGroupLinkage(
+ id="id_example",
+ type="userGroup",
+ ),
+ ]),
+ ),
+ ),
+ type="userGroup",
+ ),
+ ) # JsonApiUserGroupInDocument |
+ include = [
+ "include=parents",
+ ] # [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
+ try:
+ api_response = api_instance.create_entity_user_groups(json_api_user_group_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_user_groups: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.create_entity_user_groups(json_api_user_group_in_document, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_user_groups: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **json_api_user_group_in_document** | [**JsonApiUserGroupInDocument**](JsonApiUserGroupInDocument.md)| |
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiUserGroupOutDocument**](JsonApiUserGroupOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_user_settings**
+> JsonApiUserSettingOutDocument create_entity_user_settings(user_id, json_api_user_setting_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_setting_out_document import JsonApiUserSettingOutDocument
+from gooddata_api_client.model.json_api_user_setting_in_document import JsonApiUserSettingInDocument
+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)
+ user_id = "userId_example" # str |
+ json_api_user_setting_in_document = JsonApiUserSettingInDocument(
+ data=JsonApiUserSettingIn(
+ attributes=JsonApiOrganizationSettingInAttributes(
+ content={},
+ ),
+ id="id1",
+ type="userSetting",
+ ),
+ ) # JsonApiUserSettingInDocument |
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_user_settings(user_id, json_api_user_setting_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_user_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**| |
+ **json_api_user_setting_in_document** | [**JsonApiUserSettingInDocument**](JsonApiUserSettingInDocument.md)| |
+
+### Return type
+
+[**JsonApiUserSettingOutDocument**](JsonApiUserSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_users**
+> JsonApiUserOutDocument create_entity_users(json_api_user_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_in_document import JsonApiUserInDocument
+from gooddata_api_client.model.json_api_user_out_document import JsonApiUserOutDocument
+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)
+ json_api_user_in_document = JsonApiUserInDocument(
+ data=JsonApiUserIn(
+ attributes=JsonApiUserInAttributes(
+ authentication_id="authentication_id_example",
+ ),
+ id="id1",
+ relationships=JsonApiUserInRelationships(
+ user_groups=JsonApiUserGroupInRelationshipsParents(
+ data=JsonApiUserGroupToManyLinkage([
+ JsonApiUserGroupLinkage(
+ id="id_example",
+ type="userGroup",
+ ),
+ ]),
+ ),
+ ),
+ type="user",
+ ),
+ ) # JsonApiUserInDocument |
+ include = [
+ "include=userGroups",
+ ] # [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
+ try:
+ api_response = api_instance.create_entity_users(json_api_user_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_users: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.create_entity_users(json_api_user_in_document, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_users: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **json_api_user_in_document** | [**JsonApiUserInDocument**](JsonApiUserInDocument.md)| |
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiUserOutDocument**](JsonApiUserOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_visualization_objects**
+> JsonApiVisualizationObjectOutDocument create_entity_visualization_objects(workspace_id, json_api_visualization_object_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_visualization_object_out_document import JsonApiVisualizationObjectOutDocument
+from gooddata_api_client.model.json_api_visualization_object_in_document import JsonApiVisualizationObjectInDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ json_api_visualization_object_in_document = JsonApiVisualizationObjectInDocument(
+ data=JsonApiVisualizationObjectIn(
+ attributes=JsonApiAnalyticalDashboardInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="visualizationObject",
+ ),
+ ) # JsonApiVisualizationObjectInDocument |
+ include = [
+ "include=facts,attributes,labels,metrics,datasets",
+ ] # [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
+ try:
+ api_response = api_instance.create_entity_visualization_objects(workspace_id, json_api_visualization_object_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_visualization_objects: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.create_entity_visualization_objects(workspace_id, json_api_visualization_object_in_document, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_visualization_objects: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **json_api_visualization_object_in_document** | [**JsonApiVisualizationObjectInDocument**](JsonApiVisualizationObjectInDocument.md)| |
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiVisualizationObjectOutDocument**](JsonApiVisualizationObjectOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_workspace_data_filters**
+> JsonApiWorkspaceDataFilterOutDocument create_entity_workspace_data_filters(workspace_id, json_api_workspace_data_filter_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_data_filter_out_document import JsonApiWorkspaceDataFilterOutDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_in_document import JsonApiWorkspaceDataFilterInDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ json_api_workspace_data_filter_in_document = JsonApiWorkspaceDataFilterInDocument(
+ data=JsonApiWorkspaceDataFilterIn(
+ attributes=JsonApiWorkspaceDataFilterInAttributes(
+ column_name="column_name_example",
+ description="description_example",
+ title="title_example",
+ ),
+ id="id1",
+ relationships=JsonApiWorkspaceDataFilterInRelationships(
+ filter_settings=JsonApiWorkspaceDataFilterInRelationshipsFilterSettings(
+ data=JsonApiWorkspaceDataFilterSettingToManyLinkage([
+ JsonApiWorkspaceDataFilterSettingLinkage(
+ id="id_example",
+ type="workspaceDataFilterSetting",
+ ),
+ ]),
+ ),
+ ),
+ type="workspaceDataFilter",
+ ),
+ ) # JsonApiWorkspaceDataFilterInDocument |
+ include = [
+ "include=filterSettings",
+ ] # [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
+ try:
+ api_response = api_instance.create_entity_workspace_data_filters(workspace_id, json_api_workspace_data_filter_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_workspace_data_filters: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.create_entity_workspace_data_filters(workspace_id, json_api_workspace_data_filter_in_document, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_workspace_data_filters: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **json_api_workspace_data_filter_in_document** | [**JsonApiWorkspaceDataFilterInDocument**](JsonApiWorkspaceDataFilterInDocument.md)| |
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiWorkspaceDataFilterOutDocument**](JsonApiWorkspaceDataFilterOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_workspace_settings**
+> JsonApiWorkspaceSettingOutDocument create_entity_workspace_settings(workspace_id, json_api_workspace_setting_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_setting_in_document import JsonApiWorkspaceSettingInDocument
+from gooddata_api_client.model.json_api_workspace_setting_out_document import JsonApiWorkspaceSettingOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ json_api_workspace_setting_in_document = JsonApiWorkspaceSettingInDocument(
+ data=JsonApiWorkspaceSettingIn(
+ attributes=JsonApiOrganizationSettingInAttributes(
+ content={},
+ ),
+ id="id1",
+ type="workspaceSetting",
+ ),
+ ) # JsonApiWorkspaceSettingInDocument |
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_workspace_settings(workspace_id, json_api_workspace_setting_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_workspace_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **json_api_workspace_setting_in_document** | [**JsonApiWorkspaceSettingInDocument**](JsonApiWorkspaceSettingInDocument.md)| |
+
+### Return type
+
+[**JsonApiWorkspaceSettingOutDocument**](JsonApiWorkspaceSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **create_entity_workspaces**
+> JsonApiWorkspaceOutDocument create_entity_workspaces(json_api_workspace_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_out_document import JsonApiWorkspaceOutDocument
+from gooddata_api_client.model.json_api_workspace_in_document import JsonApiWorkspaceInDocument
+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)
+ json_api_workspace_in_document = JsonApiWorkspaceInDocument(
+ data=JsonApiWorkspaceIn(
+ attributes=JsonApiWorkspaceInAttributes(
+ description="description_example",
+ early_access="early_access_example",
+ name="name_example",
+ ),
+ id="id1",
+ relationships=JsonApiWorkspaceInRelationships(
+ parent=JsonApiWorkspaceInRelationshipsParent(
+ data=JsonApiWorkspaceToOneLinkage(None),
+ ),
+ ),
+ type="workspace",
+ ),
+ ) # JsonApiWorkspaceInDocument |
+ include = [
+ "include=parent",
+ ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.create_entity_workspaces(json_api_workspace_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_workspaces: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.create_entity_workspaces(json_api_workspace_in_document, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->create_entity_workspaces: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **json_api_workspace_in_document** | [**JsonApiWorkspaceInDocument**](JsonApiWorkspaceInDocument.md)| |
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiWorkspaceOutDocument**](JsonApiWorkspaceOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | 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)
+
+# **delete_entity_analytical_dashboards**
+> delete_entity_analytical_dashboards(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_instance.delete_entity_analytical_dashboards(workspace_id, object_id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_analytical_dashboards: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_analytical_dashboards(workspace_id, object_id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_analytical_dashboards: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_api_tokens**
+> delete_entity_api_tokens(user_id, id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ user_id = "userId_example" # str |
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=bearerToken==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_instance.delete_entity_api_tokens(user_id, id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_api_tokens: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_api_tokens(user_id, id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_api_tokens: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**| |
+ **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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_color_palettes**
+> delete_entity_color_palettes(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=name==someString;content==JsonNodeValue" # 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_instance.delete_entity_color_palettes(id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_color_palettes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_color_palettes(id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_color_palettes: %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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_csp_directives**
+> delete_entity_csp_directives(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=sources==v1,v2,v3" # 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_instance.delete_entity_csp_directives(id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_csp_directives: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_csp_directives(id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_csp_directives: %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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_dashboard_plugins**
+> delete_entity_dashboard_plugins(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_instance.delete_entity_dashboard_plugins(workspace_id, object_id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_dashboard_plugins: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_dashboard_plugins(workspace_id, object_id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_dashboard_plugins: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_data_sources**
+> delete_entity_data_sources(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=name==someString;type==DatabaseTypeValue" # 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_instance.delete_entity_data_sources(id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_data_sources: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_data_sources(id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_data_sources: %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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_filter_contexts**
+> delete_entity_filter_contexts(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_instance.delete_entity_filter_contexts(workspace_id, object_id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_filter_contexts: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_filter_contexts(workspace_id, object_id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_filter_contexts: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_metrics**
+> delete_entity_metrics(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_instance.delete_entity_metrics(workspace_id, object_id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_metrics: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_metrics(workspace_id, object_id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_metrics: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_organization_settings**
+> delete_entity_organization_settings(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=content==JsonNodeValue" # 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_instance.delete_entity_organization_settings(id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_organization_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_organization_settings(id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_organization_settings: %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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_themes**
+> delete_entity_themes(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=name==someString;content==JsonNodeValue" # 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_instance.delete_entity_themes(id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_themes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_themes(id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_themes: %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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_user_groups**
+> delete_entity_user_groups(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_instance.delete_entity_user_groups(id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_user_groups: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_user_groups(id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_user_groups: %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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_user_settings**
+> delete_entity_user_settings(user_id, id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ user_id = "userId_example" # str |
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=content==JsonNodeValue" # 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_instance.delete_entity_user_settings(user_id, id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_user_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_user_settings(user_id, id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_user_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**| |
+ **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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_users**
+> delete_entity_users(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=authenticationId==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_instance.delete_entity_users(id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_users: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_users(id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_users: %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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_visualization_objects**
+> delete_entity_visualization_objects(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_instance.delete_entity_visualization_objects(workspace_id, object_id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_visualization_objects: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_visualization_objects(workspace_id, object_id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_visualization_objects: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_workspace_data_filters**
+> delete_entity_workspace_data_filters(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_instance.delete_entity_workspace_data_filters(workspace_id, object_id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_workspace_data_filters: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_workspace_data_filters(workspace_id, object_id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_workspace_data_filters: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_workspace_settings**
+> delete_entity_workspace_settings(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ filter = "filter=content==JsonNodeValue" # 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_instance.delete_entity_workspace_settings(workspace_id, object_id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_workspace_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_workspace_settings(workspace_id, object_id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_workspace_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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)
+
+# **delete_entity_workspaces**
+> delete_entity_workspaces(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=name==someString;earlyAccess==someString;parent.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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_instance.delete_entity_workspaces(id)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_workspaces: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_instance.delete_entity_workspaces(id, filter=filter)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->delete_entity_workspaces: %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
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Successfully deleted | - |
+
+[[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_analytical_dashboards**
+> JsonApiAnalyticalDashboardOutList get_all_entities_analytical_dashboards(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_analytical_dashboard_out_list import JsonApiAnalyticalDashboardOutList
+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)
+ 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" # 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=visualizationObjects,analyticalDashboards,labels,metrics,datasets,filterContexts,dashboardPlugins",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_analytical_dashboards(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_analytical_dashboards: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_analytical_dashboards(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_analytical_dashboards: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiAnalyticalDashboardOutList**](JsonApiAnalyticalDashboardOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_api_tokens**
+> JsonApiApiTokenOutList get_all_entities_api_tokens(user_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_api_token_out_list import JsonApiApiTokenOutList
+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)
+ user_id = "userId_example" # str |
+ filter = "filter=bearerToken==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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_api_tokens(user_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_api_tokens: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_api_tokens(user_id, filter=filter, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_api_tokens: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_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]
+ **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]
+
+### Return type
+
+[**JsonApiApiTokenOutList**](JsonApiApiTokenOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_attributes**
+> JsonApiAttributeOutList get_all_entities_attributes(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_attribute_out_list import JsonApiAttributeOutList
+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)
+ 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;defaultView.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,defaultView,labels",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_attributes(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_attributes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_attributes(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_attributes: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiAttributeOutList**](JsonApiAttributeOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_color_palettes**
+> JsonApiColorPaletteOutList get_all_entities_color_palettes()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_color_palette_out_list import JsonApiColorPaletteOutList
+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;content==JsonNodeValue" # 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)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_color_palettes(filter=filter, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_color_palettes: %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]
+
+### Return type
+
+[**JsonApiColorPaletteOutList**](JsonApiColorPaletteOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_csp_directives**
+> JsonApiCspDirectiveOutList get_all_entities_csp_directives()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_csp_directive_out_list import JsonApiCspDirectiveOutList
+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=sources==v1,v2,v3" # 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)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_csp_directives(filter=filter, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_csp_directives: %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]
+
+### Return type
+
+[**JsonApiCspDirectiveOutList**](JsonApiCspDirectiveOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_dashboard_plugins**
+> JsonApiDashboardPluginOutList get_all_entities_dashboard_plugins(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_dashboard_plugin_out_list import JsonApiDashboardPluginOutList
+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)
+ 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" # 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)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_dashboard_plugins(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_dashboard_plugins: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_dashboard_plugins(workspace_id, origin=origin, filter=filter, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_dashboard_plugins: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiDashboardPluginOutList**](JsonApiDashboardPluginOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_data_source_identifiers**
+> JsonApiDataSourceIdentifierOutList get_all_entities_data_source_identifiers()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_data_source_identifier_out_list import JsonApiDataSourceIdentifierOutList
+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;schema==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=permissions,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_data_source_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_data_source_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
+
+[**JsonApiDataSourceIdentifierOutList**](JsonApiDataSourceIdentifierOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_data_source_tables**
+> JsonApiDataSourceTableOutList get_all_entities_data_source_tables(data_source_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_data_source_table_out_list import JsonApiDataSourceTableOutList
+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)
+ data_source_id = "dataSourceId_example" # str |
+ filter = "filter=path==v1,v2,v3;type==DataSourceTableTypeValue" # 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_data_source_tables(data_source_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_data_source_tables: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_data_source_tables(data_source_id, filter=filter, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_data_source_tables: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **data_source_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]
+ **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]
+
+### Return type
+
+[**JsonApiDataSourceTableOutList**](JsonApiDataSourceTableOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_data_sources**
+> JsonApiDataSourceOutList get_all_entities_data_sources()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_data_source_out_list import JsonApiDataSourceOutList
+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;type==DatabaseTypeValue" # 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=permissions,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_data_sources(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_data_sources: %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
+
+[**JsonApiDataSourceOutList**](JsonApiDataSourceOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_datasets**
+> JsonApiDatasetOutList get_all_entities_datasets(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_dataset_out_list import JsonApiDatasetOutList
+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)
+ 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" # 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=attributes,facts,references",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_datasets(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_datasets: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_datasets(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_datasets: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiDatasetOutList**](JsonApiDatasetOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_entitlements**
+> JsonApiEntitlementOutList get_all_entities_entitlements()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_entitlement_out_list import JsonApiEntitlementOutList
+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=value==someString;expiry==LocalDateValue" # 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)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_entitlements(filter=filter, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_entitlements: %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]
+
+### Return type
+
+[**JsonApiEntitlementOutList**](JsonApiEntitlementOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_facts**
+> JsonApiFactOutList get_all_entities_facts(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_fact_out_list import JsonApiFactOutList
+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)
+ 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)
+ include = [
+ "include=dataset",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_facts(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_facts: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_facts(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_facts: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiFactOutList**](JsonApiFactOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_filter_contexts**
+> JsonApiFilterContextOutList get_all_entities_filter_contexts(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_filter_context_out_list import JsonApiFilterContextOutList
+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)
+ 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" # 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=attributes,datasets,labels",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_filter_contexts(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_filter_contexts: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_filter_contexts(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_filter_contexts: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiFilterContextOutList**](JsonApiFilterContextOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_labels**
+> JsonApiLabelOutList get_all_entities_labels(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_label_out_list import JsonApiLabelOutList
+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)
+ 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;attribute.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=attribute",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_labels(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_labels: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_labels(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_labels: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiLabelOutList**](JsonApiLabelOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_metrics**
+> JsonApiMetricOutList get_all_entities_metrics(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_metric_out_list import JsonApiMetricOutList
+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)
+ 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" # 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=facts,attributes,labels,metrics,datasets",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_metrics(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_metrics: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_metrics(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_metrics: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiMetricOutList**](JsonApiMetricOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_organization_settings**
+> JsonApiOrganizationSettingOutList get_all_entities_organization_settings()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_organization_setting_out_list import JsonApiOrganizationSettingOutList
+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=content==JsonNodeValue" # 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)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_organization_settings(filter=filter, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_organization_settings: %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]
+
+### Return type
+
+[**JsonApiOrganizationSettingOutList**](JsonApiOrganizationSettingOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_themes**
+> JsonApiThemeOutList get_all_entities_themes()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_theme_out_list import JsonApiThemeOutList
+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;content==JsonNodeValue" # 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)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_themes(filter=filter, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_themes: %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]
+
+### Return type
+
+[**JsonApiThemeOutList**](JsonApiThemeOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_user_groups**
+> JsonApiUserGroupOutList get_all_entities_user_groups()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_group_out_list import JsonApiUserGroupOutList
+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=" # 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=parents",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_user_groups(filter=filter, include=include, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_user_groups: %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]
+ **include** | **[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** | **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]
+
+### Return type
+
+[**JsonApiUserGroupOutList**](JsonApiUserGroupOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_user_settings**
+> JsonApiUserSettingOutList get_all_entities_user_settings(user_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_setting_out_list import JsonApiUserSettingOutList
+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)
+ user_id = "userId_example" # str |
+ filter = "filter=content==JsonNodeValue" # 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_user_settings(user_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_user_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_user_settings(user_id, filter=filter, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_user_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_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]
+ **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]
+
+### Return type
+
+[**JsonApiUserSettingOutList**](JsonApiUserSettingOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_users**
+> JsonApiUserOutList get_all_entities_users()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_out_list import JsonApiUserOutList
+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=authenticationId==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)
+ include = [
+ "include=userGroups",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_users(filter=filter, include=include, page=page, size=size, sort=sort)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_users: %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]
+ **include** | **[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** | **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]
+
+### Return type
+
+[**JsonApiUserOutList**](JsonApiUserOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_visualization_objects**
+> JsonApiVisualizationObjectOutList get_all_entities_visualization_objects(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_visualization_object_out_list import JsonApiVisualizationObjectOutList
+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)
+ 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" # 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=facts,attributes,labels,metrics,datasets",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_visualization_objects(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_visualization_objects: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_visualization_objects(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_visualization_objects: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiVisualizationObjectOutList**](JsonApiVisualizationObjectOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_workspace_data_filter_settings**
+> JsonApiWorkspaceDataFilterSettingOutList get_all_entities_workspace_data_filter_settings(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_list import JsonApiWorkspaceDataFilterSettingOutList
+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)
+ 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;workspaceDataFilter.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=workspaceDataFilter",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_workspace_data_filter_settings(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_workspace_data_filter_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_workspace_data_filter_settings(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_workspace_data_filter_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiWorkspaceDataFilterSettingOutList**](JsonApiWorkspaceDataFilterSettingOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_workspace_data_filters**
+> JsonApiWorkspaceDataFilterOutList get_all_entities_workspace_data_filters(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_data_filter_out_list import JsonApiWorkspaceDataFilterOutList
+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)
+ 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" # 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=filterSettings",
+ ] # [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
+ sort = [
+ "sort_example",
+ ] # [str] | Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. (optional)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_workspace_data_filters(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_workspace_data_filters: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_workspace_data_filters(workspace_id, origin=origin, filter=filter, include=include, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_workspace_data_filters: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **include** | **[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** | **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiWorkspaceDataFilterOutList**](JsonApiWorkspaceDataFilterOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_workspace_settings**
+> JsonApiWorkspaceSettingOutList get_all_entities_workspace_settings(workspace_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_setting_out_list import JsonApiWorkspaceSettingOutList
+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)
+ workspace_id = "workspaceId_example" # str |
+ origin = "ALL" # str | (optional) if omitted the server will use the default value of "ALL"
+ filter = "filter=content==JsonNodeValue" # 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)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_all_entities_workspace_settings(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_workspace_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_all_entities_workspace_settings(workspace_id, origin=origin, filter=filter, page=page, size=size, sort=sort, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_entities_workspace_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **origin** | **str**| | [optional] if omitted the server will use the default value of "ALL"
+ **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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiWorkspaceSettingOutList**](JsonApiWorkspaceSettingOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_entities_workspaces**
+> JsonApiWorkspaceOutList get_all_entities_workspaces()
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_out_list import JsonApiWorkspaceOutList
+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;earlyAccess==someString;parent.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=parent",
+ ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional)
+ 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=config,permissions,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_workspaces(filter=filter, include=include, 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_workspaces: %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]
+ **include** | **[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** | **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
+
+[**JsonApiWorkspaceOutList**](JsonApiWorkspaceOutList.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_all_options**
+> get_all_options()
+
+Links for all configuration options
+
+Retrieves links for all options for different configurations.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Links for all configuration options
+ api_instance.get_all_options()
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_all_options: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Links for all configuration options. | - |
+
+[[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_data_source_drivers**
+> get_data_source_drivers()
+
+Get all available data source drivers
+
+Retrieves a list of all supported data sources along with information about the used drivers.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Get all available data source drivers
+ api_instance.get_data_source_drivers()
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_data_source_drivers: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | A list of all available data source drivers. | - |
+
+[[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_analytical_dashboards**
+> JsonApiAnalyticalDashboardOutDocument get_entity_analytical_dashboards(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_analytical_dashboard_out_document import JsonApiAnalyticalDashboardOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+ include = [
+ "include=visualizationObjects,analyticalDashboards,labels,metrics,datasets,filterContexts,dashboardPlugins",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_analytical_dashboards(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_analytical_dashboards: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_analytical_dashboards(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_analytical_dashboards: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiAnalyticalDashboardOutDocument**](JsonApiAnalyticalDashboardOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_api_tokens**
+> JsonApiApiTokenOutDocument get_entity_api_tokens(user_id, id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_api_token_out_document import JsonApiApiTokenOutDocument
+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)
+ user_id = "userId_example" # str |
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=bearerToken==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_api_tokens(user_id, id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_api_tokens: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_api_tokens(user_id, id, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_api_tokens: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**| |
+ **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
+
+[**JsonApiApiTokenOutDocument**](JsonApiApiTokenOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_attributes**
+> JsonApiAttributeOutDocument get_entity_attributes(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_attribute_out_document import JsonApiAttributeOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ filter = "filter=title==someString;description==someString;dataset.id==321;defaultView.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,defaultView,labels",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_attributes(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_attributes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_attributes(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_attributes: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiAttributeOutDocument**](JsonApiAttributeOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_color_palettes**
+> JsonApiColorPaletteOutDocument get_entity_color_palettes(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_color_palette_out_document import JsonApiColorPaletteOutDocument
+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;content==JsonNodeValue" # 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_color_palettes(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_color_palettes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_color_palettes(id, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_color_palettes: %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
+
+[**JsonApiColorPaletteOutDocument**](JsonApiColorPaletteOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_cookie_security_configurations**
+> JsonApiCookieSecurityConfigurationOutDocument get_entity_cookie_security_configurations(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_cookie_security_configuration_out_document import JsonApiCookieSecurityConfigurationOutDocument
+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=lastRotation==InstantValue;rotationInterval==DurationValue" # 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_cookie_security_configurations(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_cookie_security_configurations: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_cookie_security_configurations(id, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_cookie_security_configurations: %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
+
+[**JsonApiCookieSecurityConfigurationOutDocument**](JsonApiCookieSecurityConfigurationOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_csp_directives**
+> JsonApiCspDirectiveOutDocument get_entity_csp_directives(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_csp_directive_out_document import JsonApiCspDirectiveOutDocument
+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=sources==v1,v2,v3" # 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_csp_directives(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_csp_directives: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_csp_directives(id, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_csp_directives: %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
+
+[**JsonApiCspDirectiveOutDocument**](JsonApiCspDirectiveOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_dashboard_plugins**
+> JsonApiDashboardPluginOutDocument get_entity_dashboard_plugins(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_dashboard_plugin_out_document import JsonApiDashboardPluginOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_dashboard_plugins(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_dashboard_plugins: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_dashboard_plugins(workspace_id, object_id, filter=filter, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_dashboard_plugins: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiDashboardPluginOutDocument**](JsonApiDashboardPluginOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_data_source_identifiers**
+> JsonApiDataSourceIdentifierOutDocument get_entity_data_source_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_data_source_identifier_out_document import JsonApiDataSourceIdentifierOutDocument
+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;schema==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)
+ meta_include = [
+ "metaInclude=permissions,all",
+ ] # [str] | Include Meta objects. (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_data_source_identifiers(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_data_source_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_data_source_identifiers(id, filter=filter, meta_include=meta_include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_data_source_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]
+ **meta_include** | **[str]**| Include Meta objects. | [optional]
+
+### Return type
+
+[**JsonApiDataSourceIdentifierOutDocument**](JsonApiDataSourceIdentifierOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_data_source_tables**
+> JsonApiDataSourceTableOutDocument get_entity_data_source_tables(data_source_id, id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_data_source_table_out_document import JsonApiDataSourceTableOutDocument
+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)
+ data_source_id = "dataSourceId_example" # str |
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=path==v1,v2,v3;type==DataSourceTableTypeValue" # 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_data_source_tables(data_source_id, id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_data_source_tables: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_data_source_tables(data_source_id, id, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_data_source_tables: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **data_source_id** | **str**| |
+ **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
+
+[**JsonApiDataSourceTableOutDocument**](JsonApiDataSourceTableOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_data_sources**
+> JsonApiDataSourceOutDocument get_entity_data_sources(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_data_source_out_document import JsonApiDataSourceOutDocument
+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;type==DatabaseTypeValue" # 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)
+ meta_include = [
+ "metaInclude=permissions,all",
+ ] # [str] | Include Meta objects. (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_data_sources(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_data_sources: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_data_sources(id, filter=filter, meta_include=meta_include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_data_sources: %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]
+ **meta_include** | **[str]**| Include Meta objects. | [optional]
+
+### Return type
+
+[**JsonApiDataSourceOutDocument**](JsonApiDataSourceOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_datasets**
+> JsonApiDatasetOutDocument get_entity_datasets(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_dataset_out_document import JsonApiDatasetOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+ include = [
+ "include=attributes,facts,references",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_datasets(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_datasets: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_datasets(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_datasets: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiDatasetOutDocument**](JsonApiDatasetOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_entitlements**
+> JsonApiEntitlementOutDocument get_entity_entitlements(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_entitlement_out_document import JsonApiEntitlementOutDocument
+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=value==someString;expiry==LocalDateValue" # 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_entitlements(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_entitlements: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_entitlements(id, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_entitlements: %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
+
+[**JsonApiEntitlementOutDocument**](JsonApiEntitlementOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_facts**
+> JsonApiFactOutDocument get_entity_facts(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_fact_out_document import JsonApiFactOutDocument
+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)
+ 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)
+ include = [
+ "include=dataset",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_facts(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_facts: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_facts(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_facts: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiFactOutDocument**](JsonApiFactOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_filter_contexts**
+> JsonApiFilterContextOutDocument get_entity_filter_contexts(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_filter_context_out_document import JsonApiFilterContextOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+ include = [
+ "include=attributes,datasets,labels",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_filter_contexts(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_filter_contexts: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_filter_contexts(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_filter_contexts: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiFilterContextOutDocument**](JsonApiFilterContextOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_labels**
+> JsonApiLabelOutDocument get_entity_labels(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_label_out_document import JsonApiLabelOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ filter = "filter=title==someString;description==someString;attribute.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=attribute",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_labels(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_labels: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_labels(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_labels: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiLabelOutDocument**](JsonApiLabelOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_metrics**
+> JsonApiMetricOutDocument get_entity_metrics(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_metric_out_document import JsonApiMetricOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+ include = [
+ "include=facts,attributes,labels,metrics,datasets",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_metrics(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_metrics: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_metrics(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_metrics: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiMetricOutDocument**](JsonApiMetricOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_organization_settings**
+> JsonApiOrganizationSettingOutDocument get_entity_organization_settings(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_organization_setting_out_document import JsonApiOrganizationSettingOutDocument
+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=content==JsonNodeValue" # 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_organization_settings(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_organization_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_organization_settings(id, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_organization_settings: %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
+
+[**JsonApiOrganizationSettingOutDocument**](JsonApiOrganizationSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_organizations**
+> JsonApiOrganizationOutDocument get_entity_organizations(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_organization_out_document import JsonApiOrganizationOutDocument
+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;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",
+ ] # [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",
+ ] # [str] | Include Meta objects. (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_organizations(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_organizations: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_organizations(id, filter=filter, include=include, meta_include=meta_include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_organizations: %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]
+ **include** | **[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** | **[str]**| Include Meta objects. | [optional]
+
+### Return type
+
+[**JsonApiOrganizationOutDocument**](JsonApiOrganizationOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_themes**
+> JsonApiThemeOutDocument get_entity_themes(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_theme_out_document import JsonApiThemeOutDocument
+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;content==JsonNodeValue" # 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_themes(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_themes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_themes(id, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_themes: %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
+
+[**JsonApiThemeOutDocument**](JsonApiThemeOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_user_groups**
+> JsonApiUserGroupOutDocument get_entity_user_groups(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_group_out_document import JsonApiUserGroupOutDocument
+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=" # 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=parents",
+ ] # [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
+ try:
+ api_response = api_instance.get_entity_user_groups(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_user_groups: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_user_groups(id, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_user_groups: %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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiUserGroupOutDocument**](JsonApiUserGroupOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_user_settings**
+> JsonApiUserSettingOutDocument get_entity_user_settings(user_id, id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_setting_out_document import JsonApiUserSettingOutDocument
+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)
+ user_id = "userId_example" # str |
+ id = "/6bUUGjjNSwg0_bs" # str |
+ filter = "filter=content==JsonNodeValue" # 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_user_settings(user_id, id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_user_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_user_settings(user_id, id, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_user_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**| |
+ **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
+
+[**JsonApiUserSettingOutDocument**](JsonApiUserSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_users**
+> JsonApiUserOutDocument get_entity_users(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_out_document import JsonApiUserOutDocument
+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=authenticationId==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)
+ include = [
+ "include=userGroups",
+ ] # [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
+ try:
+ api_response = api_instance.get_entity_users(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_users: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_users(id, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_users: %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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiUserOutDocument**](JsonApiUserOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_visualization_objects**
+> JsonApiVisualizationObjectOutDocument get_entity_visualization_objects(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_visualization_object_out_document import JsonApiVisualizationObjectOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+ include = [
+ "include=facts,attributes,labels,metrics,datasets",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_visualization_objects(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_visualization_objects: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_visualization_objects(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_visualization_objects: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiVisualizationObjectOutDocument**](JsonApiVisualizationObjectOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_workspace_data_filter_settings**
+> JsonApiWorkspaceDataFilterSettingOutDocument get_entity_workspace_data_filter_settings(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_document import JsonApiWorkspaceDataFilterSettingOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ filter = "filter=title==someString;description==someString;workspaceDataFilter.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=workspaceDataFilter",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_workspace_data_filter_settings(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_workspace_data_filter_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_workspace_data_filter_settings(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_workspace_data_filter_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiWorkspaceDataFilterSettingOutDocument**](JsonApiWorkspaceDataFilterSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_workspace_data_filters**
+> JsonApiWorkspaceDataFilterOutDocument get_entity_workspace_data_filters(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_data_filter_out_document import JsonApiWorkspaceDataFilterOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # 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)
+ include = [
+ "include=filterSettings",
+ ] # [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
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_workspace_data_filters(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_workspace_data_filters: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_workspace_data_filters(workspace_id, object_id, filter=filter, include=include, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_workspace_data_filters: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **include** | **[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** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiWorkspaceDataFilterOutDocument**](JsonApiWorkspaceDataFilterOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_workspace_settings**
+> JsonApiWorkspaceSettingOutDocument get_entity_workspace_settings(workspace_id, object_id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_setting_out_document import JsonApiWorkspaceSettingOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ filter = "filter=content==JsonNodeValue" # 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)
+ x_gdc_validate_relations = False # bool | (optional) if omitted the server will use the default value of False
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_workspace_settings(workspace_id, object_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_workspace_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_workspace_settings(workspace_id, object_id, filter=filter, x_gdc_validate_relations=x_gdc_validate_relations)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_workspace_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_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]
+ **x_gdc_validate_relations** | **bool**| | [optional] if omitted the server will use the default value of False
+
+### Return type
+
+[**JsonApiWorkspaceSettingOutDocument**](JsonApiWorkspaceSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_entity_workspaces**
+> JsonApiWorkspaceOutDocument get_entity_workspaces(id)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_out_document import JsonApiWorkspaceOutDocument
+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;earlyAccess==someString;parent.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=parent",
+ ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional)
+ meta_include = [
+ "metaInclude=config,permissions,all",
+ ] # [str] | Include Meta objects. (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.get_entity_workspaces(id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_workspaces: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.get_entity_workspaces(id, filter=filter, include=include, meta_include=meta_include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_entity_workspaces: %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]
+ **include** | **[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** | **[str]**| Include Meta objects. | [optional]
+
+### Return type
+
+[**JsonApiWorkspaceOutDocument**](JsonApiWorkspaceOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/vnd.gooddata.api+json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Request successfully processed | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_organization**
+> get_organization()
+
+Get current organization info
+
+Gets a basic information about organization.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost
+# See configuration.py for a list of all supported configuration parameters.
+configuration = gooddata_api_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_api_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = entities_api.EntitiesApi(api_client)
+ meta_include = [
+ "metaInclude=permissions",
+ ] # [str] | Return list of permissions available to logged user. (optional)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ # Get current organization info
+ api_instance.get_organization(meta_include=meta_include)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->get_organization: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **meta_include** | **[str]**| Return list of permissions available to logged user. | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**302** | Redirect to entity URI. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **patch_entity_analytical_dashboards**
+> JsonApiAnalyticalDashboardOutDocument patch_entity_analytical_dashboards(workspace_id, object_id, json_api_analytical_dashboard_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_analytical_dashboard_patch_document import JsonApiAnalyticalDashboardPatchDocument
+from gooddata_api_client.model.json_api_analytical_dashboard_out_document import JsonApiAnalyticalDashboardOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_analytical_dashboard_patch_document = JsonApiAnalyticalDashboardPatchDocument(
+ data=JsonApiAnalyticalDashboardPatch(
+ attributes=JsonApiAnalyticalDashboardInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="analyticalDashboard",
+ ),
+ ) # JsonApiAnalyticalDashboardPatchDocument |
+ 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)
+ include = [
+ "include=visualizationObjects,analyticalDashboards,labels,metrics,datasets,filterContexts,dashboardPlugins",
+ ] # [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
+ try:
+ api_response = api_instance.patch_entity_analytical_dashboards(workspace_id, object_id, json_api_analytical_dashboard_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_analytical_dashboards: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_analytical_dashboards(workspace_id, object_id, json_api_analytical_dashboard_patch_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_analytical_dashboards: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_analytical_dashboard_patch_document** | [**JsonApiAnalyticalDashboardPatchDocument**](JsonApiAnalyticalDashboardPatchDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiAnalyticalDashboardOutDocument**](JsonApiAnalyticalDashboardOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_color_palettes**
+> JsonApiColorPaletteOutDocument patch_entity_color_palettes(id, json_api_color_palette_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_color_palette_patch_document import JsonApiColorPalettePatchDocument
+from gooddata_api_client.model.json_api_color_palette_out_document import JsonApiColorPaletteOutDocument
+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 |
+ json_api_color_palette_patch_document = JsonApiColorPalettePatchDocument(
+ data=JsonApiColorPalettePatch(
+ attributes=JsonApiColorPalettePatchAttributes(
+ content={},
+ name="name_example",
+ ),
+ id="id1",
+ type="colorPalette",
+ ),
+ ) # JsonApiColorPalettePatchDocument |
+ filter = "filter=name==someString;content==JsonNodeValue" # 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.patch_entity_color_palettes(id, json_api_color_palette_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_color_palettes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_color_palettes(id, json_api_color_palette_patch_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_color_palettes: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_color_palette_patch_document** | [**JsonApiColorPalettePatchDocument**](JsonApiColorPalettePatchDocument.md)| |
+ **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
+
+[**JsonApiColorPaletteOutDocument**](JsonApiColorPaletteOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_cookie_security_configurations**
+> JsonApiCookieSecurityConfigurationOutDocument patch_entity_cookie_security_configurations(id, json_api_cookie_security_configuration_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_cookie_security_configuration_out_document import JsonApiCookieSecurityConfigurationOutDocument
+from gooddata_api_client.model.json_api_cookie_security_configuration_patch_document import JsonApiCookieSecurityConfigurationPatchDocument
+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 |
+ json_api_cookie_security_configuration_patch_document = JsonApiCookieSecurityConfigurationPatchDocument(
+ data=JsonApiCookieSecurityConfigurationPatch(
+ attributes=JsonApiCookieSecurityConfigurationInAttributes(
+ last_rotation=dateutil_parser('1970-01-01T00:00:00.00Z'),
+ rotation_interval="P30D",
+ ),
+ id="id1",
+ type="cookieSecurityConfiguration",
+ ),
+ ) # JsonApiCookieSecurityConfigurationPatchDocument |
+ filter = "filter=lastRotation==InstantValue;rotationInterval==DurationValue" # 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.patch_entity_cookie_security_configurations(id, json_api_cookie_security_configuration_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_cookie_security_configurations: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_cookie_security_configurations(id, json_api_cookie_security_configuration_patch_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_cookie_security_configurations: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_cookie_security_configuration_patch_document** | [**JsonApiCookieSecurityConfigurationPatchDocument**](JsonApiCookieSecurityConfigurationPatchDocument.md)| |
+ **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
+
+[**JsonApiCookieSecurityConfigurationOutDocument**](JsonApiCookieSecurityConfigurationOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_csp_directives**
+> JsonApiCspDirectiveOutDocument patch_entity_csp_directives(id, json_api_csp_directive_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_csp_directive_out_document import JsonApiCspDirectiveOutDocument
+from gooddata_api_client.model.json_api_csp_directive_patch_document import JsonApiCspDirectivePatchDocument
+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 |
+ json_api_csp_directive_patch_document = JsonApiCspDirectivePatchDocument(
+ data=JsonApiCspDirectivePatch(
+ attributes=JsonApiCspDirectivePatchAttributes(
+ sources=[
+ "sources_example",
+ ],
+ ),
+ id="id1",
+ type="cspDirective",
+ ),
+ ) # JsonApiCspDirectivePatchDocument |
+ filter = "filter=sources==v1,v2,v3" # 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.patch_entity_csp_directives(id, json_api_csp_directive_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_csp_directives: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_csp_directives(id, json_api_csp_directive_patch_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_csp_directives: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_csp_directive_patch_document** | [**JsonApiCspDirectivePatchDocument**](JsonApiCspDirectivePatchDocument.md)| |
+ **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
+
+[**JsonApiCspDirectiveOutDocument**](JsonApiCspDirectiveOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_dashboard_plugins**
+> JsonApiDashboardPluginOutDocument patch_entity_dashboard_plugins(workspace_id, object_id, json_api_dashboard_plugin_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_dashboard_plugin_out_document import JsonApiDashboardPluginOutDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_patch_document import JsonApiDashboardPluginPatchDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_dashboard_plugin_patch_document = JsonApiDashboardPluginPatchDocument(
+ data=JsonApiDashboardPluginPatch(
+ attributes=JsonApiDashboardPluginInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="dashboardPlugin",
+ ),
+ ) # JsonApiDashboardPluginPatchDocument |
+ 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.patch_entity_dashboard_plugins(workspace_id, object_id, json_api_dashboard_plugin_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_dashboard_plugins: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_dashboard_plugins(workspace_id, object_id, json_api_dashboard_plugin_patch_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_dashboard_plugins: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_dashboard_plugin_patch_document** | [**JsonApiDashboardPluginPatchDocument**](JsonApiDashboardPluginPatchDocument.md)| |
+ **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
+
+[**JsonApiDashboardPluginOutDocument**](JsonApiDashboardPluginOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_data_sources**
+> JsonApiDataSourceOutDocument patch_entity_data_sources(id, json_api_data_source_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_data_source_patch_document import JsonApiDataSourcePatchDocument
+from gooddata_api_client.model.json_api_data_source_out_document import JsonApiDataSourceOutDocument
+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 |
+ json_api_data_source_patch_document = JsonApiDataSourcePatchDocument(
+ data=JsonApiDataSourcePatch(
+ attributes=JsonApiDataSourcePatchAttributes(
+ cache_path=[
+ "cache_path_example",
+ ],
+ enable_caching=False,
+ name="name_example",
+ parameters=[
+ JsonApiDataSourceInAttributesParametersInner(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ password="password_example",
+ schema="schema_example",
+ token="token_example",
+ type="POSTGRESQL",
+ url="url_example",
+ username="username_example",
+ ),
+ id="id1",
+ type="dataSource",
+ ),
+ ) # JsonApiDataSourcePatchDocument |
+ filter = "filter=name==someString;type==DatabaseTypeValue" # 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.patch_entity_data_sources(id, json_api_data_source_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_data_sources: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_data_sources(id, json_api_data_source_patch_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_data_sources: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_data_source_patch_document** | [**JsonApiDataSourcePatchDocument**](JsonApiDataSourcePatchDocument.md)| |
+ **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
+
+[**JsonApiDataSourceOutDocument**](JsonApiDataSourceOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_filter_contexts**
+> JsonApiFilterContextOutDocument patch_entity_filter_contexts(workspace_id, object_id, json_api_filter_context_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_filter_context_patch_document import JsonApiFilterContextPatchDocument
+from gooddata_api_client.model.json_api_filter_context_out_document import JsonApiFilterContextOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_filter_context_patch_document = JsonApiFilterContextPatchDocument(
+ data=JsonApiFilterContextPatch(
+ attributes=JsonApiAnalyticalDashboardInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="filterContext",
+ ),
+ ) # JsonApiFilterContextPatchDocument |
+ 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)
+ include = [
+ "include=attributes,datasets,labels",
+ ] # [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
+ try:
+ api_response = api_instance.patch_entity_filter_contexts(workspace_id, object_id, json_api_filter_context_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_filter_contexts: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_filter_contexts(workspace_id, object_id, json_api_filter_context_patch_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_filter_contexts: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_filter_context_patch_document** | [**JsonApiFilterContextPatchDocument**](JsonApiFilterContextPatchDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiFilterContextOutDocument**](JsonApiFilterContextOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_metrics**
+> JsonApiMetricOutDocument patch_entity_metrics(workspace_id, object_id, json_api_metric_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_metric_patch_document import JsonApiMetricPatchDocument
+from gooddata_api_client.model.json_api_metric_out_document import JsonApiMetricOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_metric_patch_document = JsonApiMetricPatchDocument(
+ data=JsonApiMetricPatch(
+ attributes=JsonApiMetricPatchAttributes(
+ are_relations_valid=True,
+ content=JsonApiMetricInAttributesContent(
+ format="format_example",
+ maql="maql_example",
+ ),
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="metric",
+ ),
+ ) # JsonApiMetricPatchDocument |
+ 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)
+ include = [
+ "include=facts,attributes,labels,metrics,datasets",
+ ] # [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
+ try:
+ api_response = api_instance.patch_entity_metrics(workspace_id, object_id, json_api_metric_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_metrics: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_metrics(workspace_id, object_id, json_api_metric_patch_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_metrics: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_metric_patch_document** | [**JsonApiMetricPatchDocument**](JsonApiMetricPatchDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiMetricOutDocument**](JsonApiMetricOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_organization_settings**
+> JsonApiOrganizationSettingOutDocument patch_entity_organization_settings(id, json_api_organization_setting_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_organization_setting_out_document import JsonApiOrganizationSettingOutDocument
+from gooddata_api_client.model.json_api_organization_setting_patch_document import JsonApiOrganizationSettingPatchDocument
+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 |
+ json_api_organization_setting_patch_document = JsonApiOrganizationSettingPatchDocument(
+ data=JsonApiOrganizationSettingPatch(
+ attributes=JsonApiOrganizationSettingInAttributes(
+ content={},
+ ),
+ id="id1",
+ type="organizationSetting",
+ ),
+ ) # JsonApiOrganizationSettingPatchDocument |
+ filter = "filter=content==JsonNodeValue" # 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.patch_entity_organization_settings(id, json_api_organization_setting_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_organization_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_organization_settings(id, json_api_organization_setting_patch_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_organization_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_organization_setting_patch_document** | [**JsonApiOrganizationSettingPatchDocument**](JsonApiOrganizationSettingPatchDocument.md)| |
+ **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
+
+[**JsonApiOrganizationSettingOutDocument**](JsonApiOrganizationSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_organizations**
+> JsonApiOrganizationOutDocument patch_entity_organizations(id, json_api_organization_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_organization_out_document import JsonApiOrganizationOutDocument
+from gooddata_api_client.model.json_api_organization_patch_document import JsonApiOrganizationPatchDocument
+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 |
+ json_api_organization_patch_document = JsonApiOrganizationPatchDocument(
+ data=JsonApiOrganizationPatch(
+ attributes=JsonApiOrganizationInAttributes(
+ allowed_origins=[
+ "allowed_origins_example",
+ ],
+ early_access="early_access_example",
+ hostname="hostname_example",
+ name="name_example",
+ oauth_client_id="oauth_client_id_example",
+ oauth_client_secret="oauth_client_secret_example",
+ oauth_issuer_id="myOidcProvider",
+ oauth_issuer_location="oauth_issuer_location_example",
+ ),
+ id="id1",
+ 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",
+ ] # [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
+ try:
+ api_response = api_instance.patch_entity_organizations(id, json_api_organization_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_organizations: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_organizations(id, json_api_organization_patch_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_organizations: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_organization_patch_document** | [**JsonApiOrganizationPatchDocument**](JsonApiOrganizationPatchDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiOrganizationOutDocument**](JsonApiOrganizationOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_themes**
+> JsonApiThemeOutDocument patch_entity_themes(id, json_api_theme_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_theme_patch_document import JsonApiThemePatchDocument
+from gooddata_api_client.model.json_api_theme_out_document import JsonApiThemeOutDocument
+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 |
+ json_api_theme_patch_document = JsonApiThemePatchDocument(
+ data=JsonApiThemePatch(
+ attributes=JsonApiColorPalettePatchAttributes(
+ content={},
+ name="name_example",
+ ),
+ id="id1",
+ type="theme",
+ ),
+ ) # JsonApiThemePatchDocument |
+ filter = "filter=name==someString;content==JsonNodeValue" # 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.patch_entity_themes(id, json_api_theme_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_themes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_themes(id, json_api_theme_patch_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_themes: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_theme_patch_document** | [**JsonApiThemePatchDocument**](JsonApiThemePatchDocument.md)| |
+ **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
+
+[**JsonApiThemeOutDocument**](JsonApiThemeOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_user_groups**
+> JsonApiUserGroupOutDocument patch_entity_user_groups(id, json_api_user_group_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_group_out_document import JsonApiUserGroupOutDocument
+from gooddata_api_client.model.json_api_user_group_patch_document import JsonApiUserGroupPatchDocument
+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 |
+ json_api_user_group_patch_document = JsonApiUserGroupPatchDocument(
+ data=JsonApiUserGroupPatch(
+ id="id1",
+ relationships=JsonApiUserGroupInRelationships(
+ parents=JsonApiUserGroupInRelationshipsParents(
+ data=JsonApiUserGroupToManyLinkage([
+ JsonApiUserGroupLinkage(
+ id="id_example",
+ type="userGroup",
+ ),
+ ]),
+ ),
+ ),
+ type="userGroup",
+ ),
+ ) # JsonApiUserGroupPatchDocument |
+ filter = "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)
+ include = [
+ "include=parents",
+ ] # [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
+ try:
+ api_response = api_instance.patch_entity_user_groups(id, json_api_user_group_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_user_groups: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_user_groups(id, json_api_user_group_patch_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_user_groups: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_user_group_patch_document** | [**JsonApiUserGroupPatchDocument**](JsonApiUserGroupPatchDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiUserGroupOutDocument**](JsonApiUserGroupOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_users**
+> JsonApiUserOutDocument patch_entity_users(id, json_api_user_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_out_document import JsonApiUserOutDocument
+from gooddata_api_client.model.json_api_user_patch_document import JsonApiUserPatchDocument
+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 |
+ json_api_user_patch_document = JsonApiUserPatchDocument(
+ data=JsonApiUserPatch(
+ attributes=JsonApiUserInAttributes(
+ authentication_id="authentication_id_example",
+ ),
+ id="id1",
+ relationships=JsonApiUserInRelationships(
+ user_groups=JsonApiUserGroupInRelationshipsParents(
+ data=JsonApiUserGroupToManyLinkage([
+ JsonApiUserGroupLinkage(
+ id="id_example",
+ type="userGroup",
+ ),
+ ]),
+ ),
+ ),
+ type="user",
+ ),
+ ) # JsonApiUserPatchDocument |
+ filter = "filter=authenticationId==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)
+ include = [
+ "include=userGroups",
+ ] # [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
+ try:
+ api_response = api_instance.patch_entity_users(id, json_api_user_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_users: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_users(id, json_api_user_patch_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_users: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_user_patch_document** | [**JsonApiUserPatchDocument**](JsonApiUserPatchDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiUserOutDocument**](JsonApiUserOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_visualization_objects**
+> JsonApiVisualizationObjectOutDocument patch_entity_visualization_objects(workspace_id, object_id, json_api_visualization_object_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_visualization_object_out_document import JsonApiVisualizationObjectOutDocument
+from gooddata_api_client.model.json_api_visualization_object_patch_document import JsonApiVisualizationObjectPatchDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_visualization_object_patch_document = JsonApiVisualizationObjectPatchDocument(
+ data=JsonApiVisualizationObjectPatch(
+ attributes=JsonApiAnalyticalDashboardInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="visualizationObject",
+ ),
+ ) # JsonApiVisualizationObjectPatchDocument |
+ 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)
+ include = [
+ "include=facts,attributes,labels,metrics,datasets",
+ ] # [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
+ try:
+ api_response = api_instance.patch_entity_visualization_objects(workspace_id, object_id, json_api_visualization_object_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_visualization_objects: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_visualization_objects(workspace_id, object_id, json_api_visualization_object_patch_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_visualization_objects: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_visualization_object_patch_document** | [**JsonApiVisualizationObjectPatchDocument**](JsonApiVisualizationObjectPatchDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiVisualizationObjectOutDocument**](JsonApiVisualizationObjectOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_workspace_data_filters**
+> JsonApiWorkspaceDataFilterOutDocument patch_entity_workspace_data_filters(workspace_id, object_id, json_api_workspace_data_filter_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_data_filter_out_document import JsonApiWorkspaceDataFilterOutDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_patch_document import JsonApiWorkspaceDataFilterPatchDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_workspace_data_filter_patch_document = JsonApiWorkspaceDataFilterPatchDocument(
+ data=JsonApiWorkspaceDataFilterPatch(
+ attributes=JsonApiWorkspaceDataFilterInAttributes(
+ column_name="column_name_example",
+ description="description_example",
+ title="title_example",
+ ),
+ id="id1",
+ relationships=JsonApiWorkspaceDataFilterInRelationships(
+ filter_settings=JsonApiWorkspaceDataFilterInRelationshipsFilterSettings(
+ data=JsonApiWorkspaceDataFilterSettingToManyLinkage([
+ JsonApiWorkspaceDataFilterSettingLinkage(
+ id="id_example",
+ type="workspaceDataFilterSetting",
+ ),
+ ]),
+ ),
+ ),
+ type="workspaceDataFilter",
+ ),
+ ) # JsonApiWorkspaceDataFilterPatchDocument |
+ 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)
+ include = [
+ "include=filterSettings",
+ ] # [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
+ try:
+ api_response = api_instance.patch_entity_workspace_data_filters(workspace_id, object_id, json_api_workspace_data_filter_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_workspace_data_filters: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_workspace_data_filters(workspace_id, object_id, json_api_workspace_data_filter_patch_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_workspace_data_filters: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_workspace_data_filter_patch_document** | [**JsonApiWorkspaceDataFilterPatchDocument**](JsonApiWorkspaceDataFilterPatchDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiWorkspaceDataFilterOutDocument**](JsonApiWorkspaceDataFilterOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_workspace_settings**
+> JsonApiWorkspaceSettingOutDocument patch_entity_workspace_settings(workspace_id, object_id, json_api_workspace_setting_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_setting_out_document import JsonApiWorkspaceSettingOutDocument
+from gooddata_api_client.model.json_api_workspace_setting_patch_document import JsonApiWorkspaceSettingPatchDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_workspace_setting_patch_document = JsonApiWorkspaceSettingPatchDocument(
+ data=JsonApiWorkspaceSettingPatch(
+ attributes=JsonApiOrganizationSettingInAttributes(
+ content={},
+ ),
+ id="id1",
+ type="workspaceSetting",
+ ),
+ ) # JsonApiWorkspaceSettingPatchDocument |
+ filter = "filter=content==JsonNodeValue" # 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.patch_entity_workspace_settings(workspace_id, object_id, json_api_workspace_setting_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_workspace_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_workspace_settings(workspace_id, object_id, json_api_workspace_setting_patch_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_workspace_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_workspace_setting_patch_document** | [**JsonApiWorkspaceSettingPatchDocument**](JsonApiWorkspaceSettingPatchDocument.md)| |
+ **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
+
+[**JsonApiWorkspaceSettingOutDocument**](JsonApiWorkspaceSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **patch_entity_workspaces**
+> JsonApiWorkspaceOutDocument patch_entity_workspaces(id, json_api_workspace_patch_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_out_document import JsonApiWorkspaceOutDocument
+from gooddata_api_client.model.json_api_workspace_patch_document import JsonApiWorkspacePatchDocument
+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 |
+ json_api_workspace_patch_document = JsonApiWorkspacePatchDocument(
+ data=JsonApiWorkspacePatch(
+ attributes=JsonApiWorkspaceInAttributes(
+ description="description_example",
+ early_access="early_access_example",
+ name="name_example",
+ ),
+ id="id1",
+ relationships=JsonApiWorkspaceInRelationships(
+ parent=JsonApiWorkspaceInRelationshipsParent(
+ data=JsonApiWorkspaceToOneLinkage(None),
+ ),
+ ),
+ type="workspace",
+ ),
+ ) # JsonApiWorkspacePatchDocument |
+ filter = "filter=name==someString;earlyAccess==someString;parent.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=parent",
+ ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.patch_entity_workspaces(id, json_api_workspace_patch_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_workspaces: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.patch_entity_workspaces(id, json_api_workspace_patch_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->patch_entity_workspaces: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_workspace_patch_document** | [**JsonApiWorkspacePatchDocument**](JsonApiWorkspacePatchDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiWorkspaceOutDocument**](JsonApiWorkspaceOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_analytical_dashboards**
+> JsonApiAnalyticalDashboardOutDocument update_entity_analytical_dashboards(workspace_id, object_id, json_api_analytical_dashboard_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_analytical_dashboard_in_document import JsonApiAnalyticalDashboardInDocument
+from gooddata_api_client.model.json_api_analytical_dashboard_out_document import JsonApiAnalyticalDashboardOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_analytical_dashboard_in_document = JsonApiAnalyticalDashboardInDocument(
+ data=JsonApiAnalyticalDashboardIn(
+ attributes=JsonApiAnalyticalDashboardInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="analyticalDashboard",
+ ),
+ ) # JsonApiAnalyticalDashboardInDocument |
+ 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)
+ include = [
+ "include=visualizationObjects,analyticalDashboards,labels,metrics,datasets,filterContexts,dashboardPlugins",
+ ] # [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
+ try:
+ api_response = api_instance.update_entity_analytical_dashboards(workspace_id, object_id, json_api_analytical_dashboard_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_analytical_dashboards: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_analytical_dashboards(workspace_id, object_id, json_api_analytical_dashboard_in_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_analytical_dashboards: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_analytical_dashboard_in_document** | [**JsonApiAnalyticalDashboardInDocument**](JsonApiAnalyticalDashboardInDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiAnalyticalDashboardOutDocument**](JsonApiAnalyticalDashboardOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_api_tokens**
+> JsonApiApiTokenOutDocument update_entity_api_tokens(user_id, id, json_api_api_token_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_api_token_out_document import JsonApiApiTokenOutDocument
+from gooddata_api_client.model.json_api_api_token_in_document import JsonApiApiTokenInDocument
+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)
+ user_id = "userId_example" # str |
+ id = "/6bUUGjjNSwg0_bs" # str |
+ json_api_api_token_in_document = JsonApiApiTokenInDocument(
+ data=JsonApiApiTokenIn(
+ id="id1",
+ type="apiToken",
+ ),
+ ) # JsonApiApiTokenInDocument |
+ filter = "filter=bearerToken==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.update_entity_api_tokens(user_id, id, json_api_api_token_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_api_tokens: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_api_tokens(user_id, id, json_api_api_token_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_api_tokens: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**| |
+ **id** | **str**| |
+ **json_api_api_token_in_document** | [**JsonApiApiTokenInDocument**](JsonApiApiTokenInDocument.md)| |
+ **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
+
+[**JsonApiApiTokenOutDocument**](JsonApiApiTokenOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_color_palettes**
+> JsonApiColorPaletteOutDocument update_entity_color_palettes(id, json_api_color_palette_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_color_palette_in_document import JsonApiColorPaletteInDocument
+from gooddata_api_client.model.json_api_color_palette_out_document import JsonApiColorPaletteOutDocument
+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 |
+ json_api_color_palette_in_document = JsonApiColorPaletteInDocument(
+ data=JsonApiColorPaletteIn(
+ attributes=JsonApiColorPaletteInAttributes(
+ content={},
+ name="name_example",
+ ),
+ id="id1",
+ type="colorPalette",
+ ),
+ ) # JsonApiColorPaletteInDocument |
+ filter = "filter=name==someString;content==JsonNodeValue" # 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.update_entity_color_palettes(id, json_api_color_palette_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_color_palettes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_color_palettes(id, json_api_color_palette_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_color_palettes: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_color_palette_in_document** | [**JsonApiColorPaletteInDocument**](JsonApiColorPaletteInDocument.md)| |
+ **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
+
+[**JsonApiColorPaletteOutDocument**](JsonApiColorPaletteOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_cookie_security_configurations**
+> JsonApiCookieSecurityConfigurationOutDocument update_entity_cookie_security_configurations(id, json_api_cookie_security_configuration_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_cookie_security_configuration_in_document import JsonApiCookieSecurityConfigurationInDocument
+from gooddata_api_client.model.json_api_cookie_security_configuration_out_document import JsonApiCookieSecurityConfigurationOutDocument
+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 |
+ json_api_cookie_security_configuration_in_document = JsonApiCookieSecurityConfigurationInDocument(
+ data=JsonApiCookieSecurityConfigurationIn(
+ attributes=JsonApiCookieSecurityConfigurationInAttributes(
+ last_rotation=dateutil_parser('1970-01-01T00:00:00.00Z'),
+ rotation_interval="P30D",
+ ),
+ id="id1",
+ type="cookieSecurityConfiguration",
+ ),
+ ) # JsonApiCookieSecurityConfigurationInDocument |
+ filter = "filter=lastRotation==InstantValue;rotationInterval==DurationValue" # 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.update_entity_cookie_security_configurations(id, json_api_cookie_security_configuration_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_cookie_security_configurations: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_cookie_security_configurations(id, json_api_cookie_security_configuration_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_cookie_security_configurations: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_cookie_security_configuration_in_document** | [**JsonApiCookieSecurityConfigurationInDocument**](JsonApiCookieSecurityConfigurationInDocument.md)| |
+ **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
+
+[**JsonApiCookieSecurityConfigurationOutDocument**](JsonApiCookieSecurityConfigurationOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_csp_directives**
+> JsonApiCspDirectiveOutDocument update_entity_csp_directives(id, json_api_csp_directive_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_csp_directive_out_document import JsonApiCspDirectiveOutDocument
+from gooddata_api_client.model.json_api_csp_directive_in_document import JsonApiCspDirectiveInDocument
+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 |
+ json_api_csp_directive_in_document = JsonApiCspDirectiveInDocument(
+ data=JsonApiCspDirectiveIn(
+ attributes=JsonApiCspDirectiveInAttributes(
+ sources=[
+ "sources_example",
+ ],
+ ),
+ id="id1",
+ type="cspDirective",
+ ),
+ ) # JsonApiCspDirectiveInDocument |
+ filter = "filter=sources==v1,v2,v3" # 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.update_entity_csp_directives(id, json_api_csp_directive_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_csp_directives: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_csp_directives(id, json_api_csp_directive_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_csp_directives: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_csp_directive_in_document** | [**JsonApiCspDirectiveInDocument**](JsonApiCspDirectiveInDocument.md)| |
+ **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
+
+[**JsonApiCspDirectiveOutDocument**](JsonApiCspDirectiveOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_dashboard_plugins**
+> JsonApiDashboardPluginOutDocument update_entity_dashboard_plugins(workspace_id, object_id, json_api_dashboard_plugin_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_dashboard_plugin_out_document import JsonApiDashboardPluginOutDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_in_document import JsonApiDashboardPluginInDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_dashboard_plugin_in_document = JsonApiDashboardPluginInDocument(
+ data=JsonApiDashboardPluginIn(
+ attributes=JsonApiDashboardPluginInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="dashboardPlugin",
+ ),
+ ) # JsonApiDashboardPluginInDocument |
+ 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)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.update_entity_dashboard_plugins(workspace_id, object_id, json_api_dashboard_plugin_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_dashboard_plugins: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_dashboard_plugins(workspace_id, object_id, json_api_dashboard_plugin_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_dashboard_plugins: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_dashboard_plugin_in_document** | [**JsonApiDashboardPluginInDocument**](JsonApiDashboardPluginInDocument.md)| |
+ **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
+
+[**JsonApiDashboardPluginOutDocument**](JsonApiDashboardPluginOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_data_sources**
+> JsonApiDataSourceOutDocument update_entity_data_sources(id, json_api_data_source_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_data_source_in_document import JsonApiDataSourceInDocument
+from gooddata_api_client.model.json_api_data_source_out_document import JsonApiDataSourceOutDocument
+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 |
+ json_api_data_source_in_document = JsonApiDataSourceInDocument(
+ data=JsonApiDataSourceIn(
+ attributes=JsonApiDataSourceInAttributes(
+ cache_path=[
+ "cache_path_example",
+ ],
+ enable_caching=False,
+ name="name_example",
+ parameters=[
+ JsonApiDataSourceInAttributesParametersInner(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ password="password_example",
+ schema="schema_example",
+ token="token_example",
+ type="POSTGRESQL",
+ url="url_example",
+ username="username_example",
+ ),
+ id="id1",
+ type="dataSource",
+ ),
+ ) # JsonApiDataSourceInDocument |
+ filter = "filter=name==someString;type==DatabaseTypeValue" # 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.update_entity_data_sources(id, json_api_data_source_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_data_sources: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_data_sources(id, json_api_data_source_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_data_sources: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_data_source_in_document** | [**JsonApiDataSourceInDocument**](JsonApiDataSourceInDocument.md)| |
+ **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
+
+[**JsonApiDataSourceOutDocument**](JsonApiDataSourceOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_filter_contexts**
+> JsonApiFilterContextOutDocument update_entity_filter_contexts(workspace_id, object_id, json_api_filter_context_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_filter_context_in_document import JsonApiFilterContextInDocument
+from gooddata_api_client.model.json_api_filter_context_out_document import JsonApiFilterContextOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_filter_context_in_document = JsonApiFilterContextInDocument(
+ data=JsonApiFilterContextIn(
+ attributes=JsonApiAnalyticalDashboardInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="filterContext",
+ ),
+ ) # JsonApiFilterContextInDocument |
+ 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)
+ include = [
+ "include=attributes,datasets,labels",
+ ] # [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
+ try:
+ api_response = api_instance.update_entity_filter_contexts(workspace_id, object_id, json_api_filter_context_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_filter_contexts: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_filter_contexts(workspace_id, object_id, json_api_filter_context_in_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_filter_contexts: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_filter_context_in_document** | [**JsonApiFilterContextInDocument**](JsonApiFilterContextInDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiFilterContextOutDocument**](JsonApiFilterContextOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_metrics**
+> JsonApiMetricOutDocument update_entity_metrics(workspace_id, object_id, json_api_metric_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_metric_in_document import JsonApiMetricInDocument
+from gooddata_api_client.model.json_api_metric_out_document import JsonApiMetricOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_metric_in_document = JsonApiMetricInDocument(
+ data=JsonApiMetricIn(
+ attributes=JsonApiMetricInAttributes(
+ are_relations_valid=True,
+ content=JsonApiMetricInAttributesContent(
+ format="format_example",
+ maql="maql_example",
+ ),
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="metric",
+ ),
+ ) # JsonApiMetricInDocument |
+ 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)
+ include = [
+ "include=facts,attributes,labels,metrics,datasets",
+ ] # [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
+ try:
+ api_response = api_instance.update_entity_metrics(workspace_id, object_id, json_api_metric_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_metrics: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_metrics(workspace_id, object_id, json_api_metric_in_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_metrics: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_metric_in_document** | [**JsonApiMetricInDocument**](JsonApiMetricInDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiMetricOutDocument**](JsonApiMetricOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_organization_settings**
+> JsonApiOrganizationSettingOutDocument update_entity_organization_settings(id, json_api_organization_setting_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_organization_setting_in_document import JsonApiOrganizationSettingInDocument
+from gooddata_api_client.model.json_api_organization_setting_out_document import JsonApiOrganizationSettingOutDocument
+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 |
+ json_api_organization_setting_in_document = JsonApiOrganizationSettingInDocument(
+ data=JsonApiOrganizationSettingIn(
+ attributes=JsonApiOrganizationSettingInAttributes(
+ content={},
+ ),
+ id="id1",
+ type="organizationSetting",
+ ),
+ ) # JsonApiOrganizationSettingInDocument |
+ filter = "filter=content==JsonNodeValue" # 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.update_entity_organization_settings(id, json_api_organization_setting_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_organization_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_organization_settings(id, json_api_organization_setting_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_organization_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_organization_setting_in_document** | [**JsonApiOrganizationSettingInDocument**](JsonApiOrganizationSettingInDocument.md)| |
+ **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
+
+[**JsonApiOrganizationSettingOutDocument**](JsonApiOrganizationSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_organizations**
+> JsonApiOrganizationOutDocument update_entity_organizations(id, json_api_organization_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_organization_out_document import JsonApiOrganizationOutDocument
+from gooddata_api_client.model.json_api_organization_in_document import JsonApiOrganizationInDocument
+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 |
+ json_api_organization_in_document = JsonApiOrganizationInDocument(
+ data=JsonApiOrganizationIn(
+ attributes=JsonApiOrganizationInAttributes(
+ allowed_origins=[
+ "allowed_origins_example",
+ ],
+ early_access="early_access_example",
+ hostname="hostname_example",
+ name="name_example",
+ oauth_client_id="oauth_client_id_example",
+ oauth_client_secret="oauth_client_secret_example",
+ oauth_issuer_id="myOidcProvider",
+ oauth_issuer_location="oauth_issuer_location_example",
+ ),
+ id="id1",
+ 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",
+ ] # [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
+ try:
+ api_response = api_instance.update_entity_organizations(id, json_api_organization_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_organizations: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_organizations(id, json_api_organization_in_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_organizations: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_organization_in_document** | [**JsonApiOrganizationInDocument**](JsonApiOrganizationInDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiOrganizationOutDocument**](JsonApiOrganizationOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_themes**
+> JsonApiThemeOutDocument update_entity_themes(id, json_api_theme_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_theme_in_document import JsonApiThemeInDocument
+from gooddata_api_client.model.json_api_theme_out_document import JsonApiThemeOutDocument
+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 |
+ json_api_theme_in_document = JsonApiThemeInDocument(
+ data=JsonApiThemeIn(
+ attributes=JsonApiColorPaletteInAttributes(
+ content={},
+ name="name_example",
+ ),
+ id="id1",
+ type="theme",
+ ),
+ ) # JsonApiThemeInDocument |
+ filter = "filter=name==someString;content==JsonNodeValue" # 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.update_entity_themes(id, json_api_theme_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_themes: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_themes(id, json_api_theme_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_themes: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_theme_in_document** | [**JsonApiThemeInDocument**](JsonApiThemeInDocument.md)| |
+ **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
+
+[**JsonApiThemeOutDocument**](JsonApiThemeOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_user_groups**
+> JsonApiUserGroupOutDocument update_entity_user_groups(id, json_api_user_group_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_group_in_document import JsonApiUserGroupInDocument
+from gooddata_api_client.model.json_api_user_group_out_document import JsonApiUserGroupOutDocument
+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 |
+ json_api_user_group_in_document = JsonApiUserGroupInDocument(
+ data=JsonApiUserGroupIn(
+ id="id1",
+ relationships=JsonApiUserGroupInRelationships(
+ parents=JsonApiUserGroupInRelationshipsParents(
+ data=JsonApiUserGroupToManyLinkage([
+ JsonApiUserGroupLinkage(
+ id="id_example",
+ type="userGroup",
+ ),
+ ]),
+ ),
+ ),
+ type="userGroup",
+ ),
+ ) # JsonApiUserGroupInDocument |
+ filter = "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)
+ include = [
+ "include=parents",
+ ] # [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
+ try:
+ api_response = api_instance.update_entity_user_groups(id, json_api_user_group_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_user_groups: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_user_groups(id, json_api_user_group_in_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_user_groups: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_user_group_in_document** | [**JsonApiUserGroupInDocument**](JsonApiUserGroupInDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiUserGroupOutDocument**](JsonApiUserGroupOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_user_settings**
+> JsonApiUserSettingOutDocument update_entity_user_settings(user_id, id, json_api_user_setting_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_setting_out_document import JsonApiUserSettingOutDocument
+from gooddata_api_client.model.json_api_user_setting_in_document import JsonApiUserSettingInDocument
+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)
+ user_id = "userId_example" # str |
+ id = "/6bUUGjjNSwg0_bs" # str |
+ json_api_user_setting_in_document = JsonApiUserSettingInDocument(
+ data=JsonApiUserSettingIn(
+ attributes=JsonApiOrganizationSettingInAttributes(
+ content={},
+ ),
+ id="id1",
+ type="userSetting",
+ ),
+ ) # JsonApiUserSettingInDocument |
+ filter = "filter=content==JsonNodeValue" # 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.update_entity_user_settings(user_id, id, json_api_user_setting_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_user_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_user_settings(user_id, id, json_api_user_setting_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_user_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user_id** | **str**| |
+ **id** | **str**| |
+ **json_api_user_setting_in_document** | [**JsonApiUserSettingInDocument**](JsonApiUserSettingInDocument.md)| |
+ **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
+
+[**JsonApiUserSettingOutDocument**](JsonApiUserSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_users**
+> JsonApiUserOutDocument update_entity_users(id, json_api_user_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_user_in_document import JsonApiUserInDocument
+from gooddata_api_client.model.json_api_user_out_document import JsonApiUserOutDocument
+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 |
+ json_api_user_in_document = JsonApiUserInDocument(
+ data=JsonApiUserIn(
+ attributes=JsonApiUserInAttributes(
+ authentication_id="authentication_id_example",
+ ),
+ id="id1",
+ relationships=JsonApiUserInRelationships(
+ user_groups=JsonApiUserGroupInRelationshipsParents(
+ data=JsonApiUserGroupToManyLinkage([
+ JsonApiUserGroupLinkage(
+ id="id_example",
+ type="userGroup",
+ ),
+ ]),
+ ),
+ ),
+ type="user",
+ ),
+ ) # JsonApiUserInDocument |
+ filter = "filter=authenticationId==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)
+ include = [
+ "include=userGroups",
+ ] # [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
+ try:
+ api_response = api_instance.update_entity_users(id, json_api_user_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_users: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_users(id, json_api_user_in_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_users: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_user_in_document** | [**JsonApiUserInDocument**](JsonApiUserInDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiUserOutDocument**](JsonApiUserOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_visualization_objects**
+> JsonApiVisualizationObjectOutDocument update_entity_visualization_objects(workspace_id, object_id, json_api_visualization_object_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_visualization_object_out_document import JsonApiVisualizationObjectOutDocument
+from gooddata_api_client.model.json_api_visualization_object_in_document import JsonApiVisualizationObjectInDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_visualization_object_in_document = JsonApiVisualizationObjectInDocument(
+ data=JsonApiVisualizationObjectIn(
+ attributes=JsonApiAnalyticalDashboardInAttributes(
+ are_relations_valid=True,
+ content={},
+ description="description_example",
+ tags=[
+ "tags_example",
+ ],
+ title="title_example",
+ ),
+ id="id1",
+ type="visualizationObject",
+ ),
+ ) # JsonApiVisualizationObjectInDocument |
+ 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)
+ include = [
+ "include=facts,attributes,labels,metrics,datasets",
+ ] # [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
+ try:
+ api_response = api_instance.update_entity_visualization_objects(workspace_id, object_id, json_api_visualization_object_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_visualization_objects: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_visualization_objects(workspace_id, object_id, json_api_visualization_object_in_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_visualization_objects: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_visualization_object_in_document** | [**JsonApiVisualizationObjectInDocument**](JsonApiVisualizationObjectInDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiVisualizationObjectOutDocument**](JsonApiVisualizationObjectOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_workspace_data_filters**
+> JsonApiWorkspaceDataFilterOutDocument update_entity_workspace_data_filters(workspace_id, object_id, json_api_workspace_data_filter_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_data_filter_out_document import JsonApiWorkspaceDataFilterOutDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_in_document import JsonApiWorkspaceDataFilterInDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_workspace_data_filter_in_document = JsonApiWorkspaceDataFilterInDocument(
+ data=JsonApiWorkspaceDataFilterIn(
+ attributes=JsonApiWorkspaceDataFilterInAttributes(
+ column_name="column_name_example",
+ description="description_example",
+ title="title_example",
+ ),
+ id="id1",
+ relationships=JsonApiWorkspaceDataFilterInRelationships(
+ filter_settings=JsonApiWorkspaceDataFilterInRelationshipsFilterSettings(
+ data=JsonApiWorkspaceDataFilterSettingToManyLinkage([
+ JsonApiWorkspaceDataFilterSettingLinkage(
+ id="id_example",
+ type="workspaceDataFilterSetting",
+ ),
+ ]),
+ ),
+ ),
+ type="workspaceDataFilter",
+ ),
+ ) # JsonApiWorkspaceDataFilterInDocument |
+ 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)
+ include = [
+ "include=filterSettings",
+ ] # [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
+ try:
+ api_response = api_instance.update_entity_workspace_data_filters(workspace_id, object_id, json_api_workspace_data_filter_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_workspace_data_filters: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_workspace_data_filters(workspace_id, object_id, json_api_workspace_data_filter_in_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_workspace_data_filters: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_workspace_data_filter_in_document** | [**JsonApiWorkspaceDataFilterInDocument**](JsonApiWorkspaceDataFilterInDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiWorkspaceDataFilterOutDocument**](JsonApiWorkspaceDataFilterOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_workspace_settings**
+> JsonApiWorkspaceSettingOutDocument update_entity_workspace_settings(workspace_id, object_id, json_api_workspace_setting_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_setting_in_document import JsonApiWorkspaceSettingInDocument
+from gooddata_api_client.model.json_api_workspace_setting_out_document import JsonApiWorkspaceSettingOutDocument
+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)
+ workspace_id = "workspaceId_example" # str |
+ object_id = "objectId_example" # str |
+ json_api_workspace_setting_in_document = JsonApiWorkspaceSettingInDocument(
+ data=JsonApiWorkspaceSettingIn(
+ attributes=JsonApiOrganizationSettingInAttributes(
+ content={},
+ ),
+ id="id1",
+ type="workspaceSetting",
+ ),
+ ) # JsonApiWorkspaceSettingInDocument |
+ filter = "filter=content==JsonNodeValue" # 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.update_entity_workspace_settings(workspace_id, object_id, json_api_workspace_setting_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_workspace_settings: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_workspace_settings(workspace_id, object_id, json_api_workspace_setting_in_document, filter=filter)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_workspace_settings: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **object_id** | **str**| |
+ **json_api_workspace_setting_in_document** | [**JsonApiWorkspaceSettingInDocument**](JsonApiWorkspaceSettingInDocument.md)| |
+ **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
+
+[**JsonApiWorkspaceSettingOutDocument**](JsonApiWorkspaceSettingOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
+# **update_entity_workspaces**
+> JsonApiWorkspaceOutDocument update_entity_workspaces(id, json_api_workspace_in_document)
+
+
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import entities_api
+from gooddata_api_client.model.json_api_workspace_out_document import JsonApiWorkspaceOutDocument
+from gooddata_api_client.model.json_api_workspace_in_document import JsonApiWorkspaceInDocument
+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 |
+ json_api_workspace_in_document = JsonApiWorkspaceInDocument(
+ data=JsonApiWorkspaceIn(
+ attributes=JsonApiWorkspaceInAttributes(
+ description="description_example",
+ early_access="early_access_example",
+ name="name_example",
+ ),
+ id="id1",
+ relationships=JsonApiWorkspaceInRelationships(
+ parent=JsonApiWorkspaceInRelationshipsParent(
+ data=JsonApiWorkspaceToOneLinkage(None),
+ ),
+ ),
+ type="workspace",
+ ),
+ ) # JsonApiWorkspaceInDocument |
+ filter = "filter=name==someString;earlyAccess==someString;parent.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=parent",
+ ] # [str] | Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL). __WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together. (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ api_response = api_instance.update_entity_workspaces(id, json_api_workspace_in_document)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_workspaces: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ api_response = api_instance.update_entity_workspaces(id, json_api_workspace_in_document, filter=filter, include=include)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling EntitiesApi->update_entity_workspaces: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **id** | **str**| |
+ **json_api_workspace_in_document** | [**JsonApiWorkspaceInDocument**](JsonApiWorkspaceInDocument.md)| |
+ **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]
+ **include** | **[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]
+
+### Return type
+
+[**JsonApiWorkspaceOutDocument**](JsonApiWorkspaceOutDocument.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/vnd.gooddata.api+json
+ - **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)
+
diff --git a/gooddata-api-client/docs/EntitlementsRequest.md b/gooddata-api-client/docs/EntitlementsRequest.md
new file mode 100644
index 000000000..c942987fb
--- /dev/null
+++ b/gooddata-api-client/docs/EntitlementsRequest.md
@@ -0,0 +1,12 @@
+# EntitlementsRequest
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**entitlements_name** | **[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/EntityIdentifier.md b/gooddata-api-client/docs/EntityIdentifier.md
new file mode 100644
index 000000000..51950f111
--- /dev/null
+++ b/gooddata-api-client/docs/EntityIdentifier.md
@@ -0,0 +1,13 @@
+# EntityIdentifier
+
+
+## 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/ExecutionLinks.md b/gooddata-api-client/docs/ExecutionLinks.md
new file mode 100644
index 000000000..26be39a1a
--- /dev/null
+++ b/gooddata-api-client/docs/ExecutionLinks.md
@@ -0,0 +1,12 @@
+# ExecutionLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**execution_result** | **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/ExecutionResponse.md b/gooddata-api-client/docs/ExecutionResponse.md
new file mode 100644
index 000000000..2d4847e27
--- /dev/null
+++ b/gooddata-api-client/docs/ExecutionResponse.md
@@ -0,0 +1,13 @@
+# ExecutionResponse
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dimensions** | [**[ResultDimension]**](ResultDimension.md) | |
+**links** | [**ExecutionLinks**](ExecutionLinks.md) | |
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[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/ExecutionResult.md b/gooddata-api-client/docs/ExecutionResult.md
new file mode 100644
index 000000000..3decc95c2
--- /dev/null
+++ b/gooddata-api-client/docs/ExecutionResult.md
@@ -0,0 +1,16 @@
+# ExecutionResult
+
+Contains the result of an AFM execution.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | A multi-dimensional array of computed results. The most common one being a 2-dimensional array. The arrays can be composed of Double or null values. |
+**dimension_headers** | [**[DimensionHeader]**](DimensionHeader.md) | An array containing dimension headers. The size of the array corresponds to dimension size. Their order corresponds to the dimension order in the execution result spec. |
+**grand_totals** | [**[ExecutionResultGrandTotal]**](ExecutionResultGrandTotal.md) | |
+**paging** | [**ExecutionResultPaging**](ExecutionResultPaging.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/ExecutionResultGrandTotal.md b/gooddata-api-client/docs/ExecutionResultGrandTotal.md
new file mode 100644
index 000000000..2024789f6
--- /dev/null
+++ b/gooddata-api-client/docs/ExecutionResultGrandTotal.md
@@ -0,0 +1,15 @@
+# ExecutionResultGrandTotal
+
+Contains the data of grand totals with the same dimensions.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | **[{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]** | A multi-dimensional array of computed results. The most common one being a 2-dimensional array. The arrays can be composed of Double or null values. |
+**dimension_headers** | [**[DimensionHeader]**](DimensionHeader.md) | Contains headers for a subset of `totalDimensions` in which the totals are grand totals. |
+**total_dimensions** | **[str]** | Dimensions of the grand totals. |
+**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/ExecutionResultHeader.md b/gooddata-api-client/docs/ExecutionResultHeader.md
new file mode 100644
index 000000000..e743aa147
--- /dev/null
+++ b/gooddata-api-client/docs/ExecutionResultHeader.md
@@ -0,0 +1,15 @@
+# ExecutionResultHeader
+
+Abstract execution result header
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_header** | [**AttributeResultHeader**](AttributeResultHeader.md) | | [optional]
+**measure_header** | [**MeasureResultHeader**](MeasureResultHeader.md) | | [optional]
+**total_header** | [**TotalResultHeader**](TotalResultHeader.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/ExecutionResultPaging.md b/gooddata-api-client/docs/ExecutionResultPaging.md
new file mode 100644
index 000000000..6e9746b7d
--- /dev/null
+++ b/gooddata-api-client/docs/ExecutionResultPaging.md
@@ -0,0 +1,15 @@
+# ExecutionResultPaging
+
+A paging information related to the data presented in the execution result. These paging information are multi-dimensional.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**count** | **[int]** | A count of the returned results in every dimension. |
+**offset** | **[int]** | The offset of the results returned in every dimension. |
+**total** | **[int]** | A total count of the results in every dimension. |
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/ExecutionSettings.md b/gooddata-api-client/docs/ExecutionSettings.md
new file mode 100644
index 000000000..2205edc34
--- /dev/null
+++ b/gooddata-api-client/docs/ExecutionSettings.md
@@ -0,0 +1,13 @@
+# ExecutionSettings
+
+Various settings affecting the process of AFM execution or its result
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data_sampling_percentage** | **float** | 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. | [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/FilterBy.md b/gooddata-api-client/docs/FilterBy.md
new file mode 100644
index 000000000..8fc9e24e9
--- /dev/null
+++ b/gooddata-api-client/docs/FilterBy.md
@@ -0,0 +1,13 @@
+# FilterBy
+
+Specifies what is used for filtering.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**label_type** | **str** | Specifies which label is used for filtering - primary or requested. | defaults to "REQUESTED"
+**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/FilterDefinition.md b/gooddata-api-client/docs/FilterDefinition.md
new file mode 100644
index 000000000..492aa972e
--- /dev/null
+++ b/gooddata-api-client/docs/FilterDefinition.md
@@ -0,0 +1,20 @@
+# FilterDefinition
+
+Abstract filter definition type
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**inline** | [**InlineFilterDefinitionInline**](InlineFilterDefinitionInline.md) | | [optional]
+**ranking_filter** | [**RankingFilterRankingFilter**](RankingFilterRankingFilter.md) | | [optional]
+**comparison_measure_value_filter** | [**ComparisonMeasureValueFilterComparisonMeasureValueFilter**](ComparisonMeasureValueFilterComparisonMeasureValueFilter.md) | | [optional]
+**range_measure_value_filter** | [**RangeMeasureValueFilterRangeMeasureValueFilter**](RangeMeasureValueFilterRangeMeasureValueFilter.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]
+**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/FilterDefinitionForSimpleMeasure.md b/gooddata-api-client/docs/FilterDefinitionForSimpleMeasure.md
new file mode 100644
index 000000000..aac42513a
--- /dev/null
+++ b/gooddata-api-client/docs/FilterDefinitionForSimpleMeasure.md
@@ -0,0 +1,16 @@
+# FilterDefinitionForSimpleMeasure
+
+Abstract filter definition type for simple metric.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**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]
+**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/GenerateLdmRequest.md b/gooddata-api-client/docs/GenerateLdmRequest.md
new file mode 100644
index 000000000..8f1d5b6ee
--- /dev/null
+++ b/gooddata-api-client/docs/GenerateLdmRequest.md
@@ -0,0 +1,25 @@
+# GenerateLdmRequest
+
+A request containing all information needed for generation of logical model.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**separator** | **str** | A separator between prefixes and the names. Default is \"__\". |
+**date_granularities** | **str** | Option to control date granularities for date datasets. Empty value enables common date granularities (DAY, WEEK, MONTH, QUARTER, YEAR). Default value is `all` which enables all available date granularities, including time granularities (like hours, minutes). | [optional]
+**denorm_prefix** | **str** | Columns starting with this prefix will be considered as denormalization references. The prefix is then followed by the value of `separator` parameter. Given the denormalization reference prefix is `dr` and separator is `__`, the columns with name like `dr__customer_name` will be considered as denormalization references. | [optional]
+**fact_prefix** | **str** | Columns starting with this prefix will be considered as facts. The prefix is then followed by the value of `separator` parameter. Given the fact prefix is `f` and separator is `__`, the columns with name like `f__sold` will be considered as facts. | [optional]
+**generate_long_ids** | **bool** | A flag dictating how the attribute, fact and label ids are generated. By default their ids are derived only from the column name, unless there would be a conflict (e.g. category coming from two different tables). In that case a long id format of `<table>.<column>` is used. If the flag is set to true, then all ids will be generated in the long form. | [optional]
+**grain_prefix** | **str** | Columns starting with this prefix will be considered as grains. The prefix is then followed by the value of `separator` parameter. Given the grain prefix is `g` and separator is `__`, the columns with name like `g__name` will be considered as grains. | [optional]
+**grain_reference_prefix** | **str** | Columns starting with this prefix will be considered as grain references. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `gr` and separator is `__`, the columns with name like `gr__customer_name` will be considered as grain references. | [optional]
+**primary_label_prefix** | **str** | Columns starting with this prefix will be considered as primary labels. The prefix is then followed by the value of `separator` parameter. Given the primary label prefix is `pl` and separator is `__`, the columns with name like `pl__country_id` will be considered as primary labels. | [optional]
+**reference_prefix** | **str** | Columns starting with this prefix will be considered as references. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `r` and separator is `__`, the columns with name like `r__customer_name` will be considered as references. | [optional]
+**secondary_label_prefix** | **str** | Columns starting with this prefix will be considered as secondary labels. The prefix is then followed by the value of `separator` parameter. Given the secondary label prefix is `sl` and separator is `__`, the columns with name like `sl__country_id_country_name` will be considered as secondary labels. | [optional]
+**table_prefix** | **str** | Tables starting with this prefix will be included. The prefix is then followed by the value of `separator` parameter. Given the table prefix is `out_table` and separator is `__`, the table with name like `out_table__customers` will be scanned. | [optional]
+**view_prefix** | **str** | Views starting with this prefix will be included. The prefix is then followed by the value of `separator` parameter. Given the view prefix is `out_view` and separator is `__`, the table with name like `out_view__us_customers` will be scanned. | [optional]
+**wdf_prefix** | **str** | Column serving as workspace data filter. No labels are auto generated for such columns. | [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/GrainIdentifier.md b/gooddata-api-client/docs/GrainIdentifier.md
new file mode 100644
index 000000000..6de7aff78
--- /dev/null
+++ b/gooddata-api-client/docs/GrainIdentifier.md
@@ -0,0 +1,14 @@
+# GrainIdentifier
+
+A grain identifier.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Grain ID. |
+**type** | **str** | A type of the grain. |
+**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/GranularitiesFormatting.md b/gooddata-api-client/docs/GranularitiesFormatting.md
new file mode 100644
index 000000000..cd5d087b6
--- /dev/null
+++ b/gooddata-api-client/docs/GranularitiesFormatting.md
@@ -0,0 +1,14 @@
+# GranularitiesFormatting
+
+A date dataset granularities title formatting rules.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**title_base** | **str** | Title base is used as a token in title pattern. If left empty, it is replaced by date dataset title. |
+**title_pattern** | **str** | This pattern is used to generate the title of attributes and labels that result from the granularities. There are two tokens available: * `%titleBase` - represents shared part by all titles, or title of Date Dataset if left empty * `%granularityTitle` - represents `DateGranularity` built-in title |
+**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/HeaderGroup.md b/gooddata-api-client/docs/HeaderGroup.md
new file mode 100644
index 000000000..045d2cf27
--- /dev/null
+++ b/gooddata-api-client/docs/HeaderGroup.md
@@ -0,0 +1,13 @@
+# HeaderGroup
+
+Contains the information specific for a group of headers. These groups correlate to attributes and metric groups.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**headers** | [**[ExecutionResultHeader]**](ExecutionResultHeader.md) | An array containing headers. |
+**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/InlineFilterDefinition.md b/gooddata-api-client/docs/InlineFilterDefinition.md
new file mode 100644
index 000000000..239096975
--- /dev/null
+++ b/gooddata-api-client/docs/InlineFilterDefinition.md
@@ -0,0 +1,13 @@
+# InlineFilterDefinition
+
+Filter in form of direct MAQL query.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**inline** | [**InlineFilterDefinitionInline**](InlineFilterDefinitionInline.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/InlineFilterDefinitionInline.md b/gooddata-api-client/docs/InlineFilterDefinitionInline.md
new file mode 100644
index 000000000..15c904619
--- /dev/null
+++ b/gooddata-api-client/docs/InlineFilterDefinitionInline.md
@@ -0,0 +1,13 @@
+# InlineFilterDefinitionInline
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**filter** | **str** | |
+**apply_on_result** | **bool** | | [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/InlineMeasureDefinition.md b/gooddata-api-client/docs/InlineMeasureDefinition.md
new file mode 100644
index 000000000..fde0c6a47
--- /dev/null
+++ b/gooddata-api-client/docs/InlineMeasureDefinition.md
@@ -0,0 +1,13 @@
+# InlineMeasureDefinition
+
+Metric defined by the raw MAQL query.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**inline** | [**InlineMeasureDefinitionInline**](InlineMeasureDefinitionInline.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/InlineMeasureDefinitionInline.md b/gooddata-api-client/docs/InlineMeasureDefinitionInline.md
new file mode 100644
index 000000000..9c4103ada
--- /dev/null
+++ b/gooddata-api-client/docs/InlineMeasureDefinitionInline.md
@@ -0,0 +1,12 @@
+# InlineMeasureDefinitionInline
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**maql** | **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/JsonApiAnalyticalDashboardIn.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardIn.md
new file mode 100644
index 000000000..a7c4886ec
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardIn.md
@@ -0,0 +1,15 @@
+# JsonApiAnalyticalDashboardIn
+
+JSON:API representation of analyticalDashboard entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "analyticalDashboard"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.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/JsonApiAnalyticalDashboardInAttributes.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardInAttributes.md
new file mode 100644
index 000000000..f3b916111
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardInAttributes.md
@@ -0,0 +1,16 @@
+# JsonApiAnalyticalDashboardInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**are_relations_valid** | **bool** | | [optional]
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Free-form JSON content. | [optional]
+**description** | **str** | | [optional]
+**tags** | **[str]** | | [optional]
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiAnalyticalDashboardInDocument.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardInDocument.md
new file mode 100644
index 000000000..ea34f887a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiAnalyticalDashboardIn**](JsonApiAnalyticalDashboardIn.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/JsonApiAnalyticalDashboardLinkage.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardLinkage.md
new file mode 100644
index 000000000..c6e962241
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiAnalyticalDashboardLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "analyticalDashboard"
+**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/JsonApiAnalyticalDashboardOut.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOut.md
new file mode 100644
index 000000000..70f1fa233
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOut.md
@@ -0,0 +1,16 @@
+# JsonApiAnalyticalDashboardOut
+
+JSON:API representation of analyticalDashboard entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "analyticalDashboard"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.md) | | [optional]
+**relationships** | [**JsonApiAnalyticalDashboardOutRelationships**](JsonApiAnalyticalDashboardOutRelationships.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/JsonApiAnalyticalDashboardOutDocument.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutDocument.md
new file mode 100644
index 000000000..c4d31f1e7
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiAnalyticalDashboardOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiAnalyticalDashboardOut**](JsonApiAnalyticalDashboardOut.md) | |
+**included** | [**[JsonApiAnalyticalDashboardOutIncludes]**](JsonApiAnalyticalDashboardOutIncludes.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]
+
+[[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/JsonApiAnalyticalDashboardOutIncludes.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutIncludes.md
new file mode 100644
index 000000000..a14f1c269
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutIncludes.md
@@ -0,0 +1,16 @@
+# JsonApiAnalyticalDashboardOutIncludes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**relationships** | [**JsonApiFilterContextOutRelationships**](JsonApiFilterContextOutRelationships.md) | | [optional]
+**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional]
+**attributes** | [**JsonApiDashboardPluginInAttributes**](JsonApiDashboardPluginInAttributes.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 "dashboardPlugin"
+**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/JsonApiAnalyticalDashboardOutList.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutList.md
new file mode 100644
index 000000000..dfcff8e10
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutList.md
@@ -0,0 +1,15 @@
+# JsonApiAnalyticalDashboardOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiAnalyticalDashboardOutWithLinks]**](JsonApiAnalyticalDashboardOutWithLinks.md) | |
+**included** | [**[JsonApiAnalyticalDashboardOutIncludes]**](JsonApiAnalyticalDashboardOutIncludes.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiAnalyticalDashboardOutRelationships.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationships.md
new file mode 100644
index 000000000..e6e820add
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationships.md
@@ -0,0 +1,18 @@
+# JsonApiAnalyticalDashboardOutRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**analytical_dashboards** | [**JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards**](JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards.md) | | [optional]
+**dashboard_plugins** | [**JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins**](JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins.md) | | [optional]
+**datasets** | [**JsonApiAnalyticalDashboardOutRelationshipsDatasets**](JsonApiAnalyticalDashboardOutRelationshipsDatasets.md) | | [optional]
+**filter_contexts** | [**JsonApiAnalyticalDashboardOutRelationshipsFilterContexts**](JsonApiAnalyticalDashboardOutRelationshipsFilterContexts.md) | | [optional]
+**labels** | [**JsonApiAnalyticalDashboardOutRelationshipsLabels**](JsonApiAnalyticalDashboardOutRelationshipsLabels.md) | | [optional]
+**metrics** | [**JsonApiAnalyticalDashboardOutRelationshipsMetrics**](JsonApiAnalyticalDashboardOutRelationshipsMetrics.md) | | [optional]
+**visualization_objects** | [**JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects**](JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects.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/JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards.md
new file mode 100644
index 000000000..4053ef673
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiAnalyticalDashboardToManyLinkage**](JsonApiAnalyticalDashboardToManyLinkage.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/JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins.md
new file mode 100644
index 000000000..d6ee48d3e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDashboardPluginToManyLinkage**](JsonApiDashboardPluginToManyLinkage.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/JsonApiAnalyticalDashboardOutRelationshipsDatasets.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsDatasets.md
new file mode 100644
index 000000000..f497dca3e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsDatasets.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardOutRelationshipsDatasets
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDatasetToManyLinkage**](JsonApiDatasetToManyLinkage.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/JsonApiAnalyticalDashboardOutRelationshipsFilterContexts.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsFilterContexts.md
new file mode 100644
index 000000000..15c8f5235
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsFilterContexts.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardOutRelationshipsFilterContexts
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiFilterContextToManyLinkage**](JsonApiFilterContextToManyLinkage.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/JsonApiAnalyticalDashboardOutRelationshipsLabels.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsLabels.md
new file mode 100644
index 000000000..7f9eaa4e0
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsLabels.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardOutRelationshipsLabels
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiLabelToManyLinkage**](JsonApiLabelToManyLinkage.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/JsonApiAnalyticalDashboardOutRelationshipsMetrics.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsMetrics.md
new file mode 100644
index 000000000..ff3a92c67
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsMetrics.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardOutRelationshipsMetrics
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiMetricToManyLinkage**](JsonApiMetricToManyLinkage.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/JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects.md
new file mode 100644
index 000000000..567653504
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiVisualizationObjectToManyLinkage**](JsonApiVisualizationObjectToManyLinkage.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/JsonApiAnalyticalDashboardOutWithLinks.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutWithLinks.md
new file mode 100644
index 000000000..e58004306
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiAnalyticalDashboardOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "analyticalDashboard"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.md) | | [optional]
+**relationships** | [**JsonApiAnalyticalDashboardOutRelationships**](JsonApiAnalyticalDashboardOutRelationships.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/JsonApiAnalyticalDashboardPatch.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardPatch.md
new file mode 100644
index 000000000..aa09d4bbd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardPatch.md
@@ -0,0 +1,15 @@
+# JsonApiAnalyticalDashboardPatch
+
+JSON:API representation of patching analyticalDashboard entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "analyticalDashboard"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.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/JsonApiAnalyticalDashboardPatchDocument.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardPatchDocument.md
new file mode 100644
index 000000000..524787815
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiAnalyticalDashboardPatch**](JsonApiAnalyticalDashboardPatch.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/JsonApiAnalyticalDashboardToManyLinkage.md b/gooddata-api-client/docs/JsonApiAnalyticalDashboardToManyLinkage.md
new file mode 100644
index 000000000..d7b056ecd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAnalyticalDashboardToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiAnalyticalDashboardToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiAnalyticalDashboardLinkage]**](JsonApiAnalyticalDashboardLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiApiTokenIn.md b/gooddata-api-client/docs/JsonApiApiTokenIn.md
new file mode 100644
index 000000000..01318a344
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiApiTokenIn.md
@@ -0,0 +1,14 @@
+# JsonApiApiTokenIn
+
+JSON:API representation of apiToken entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "apiToken"
+**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/JsonApiApiTokenInDocument.md b/gooddata-api-client/docs/JsonApiApiTokenInDocument.md
new file mode 100644
index 000000000..6f2dae18e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiApiTokenInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiApiTokenInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiApiTokenIn**](JsonApiApiTokenIn.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/JsonApiApiTokenOut.md b/gooddata-api-client/docs/JsonApiApiTokenOut.md
new file mode 100644
index 000000000..9973ab211
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiApiTokenOut.md
@@ -0,0 +1,15 @@
+# JsonApiApiTokenOut
+
+JSON:API representation of apiToken entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "apiToken"
+**attributes** | [**JsonApiApiTokenOutAttributes**](JsonApiApiTokenOutAttributes.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/JsonApiApiTokenOutAttributes.md b/gooddata-api-client/docs/JsonApiApiTokenOutAttributes.md
new file mode 100644
index 000000000..a887217ff
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiApiTokenOutAttributes.md
@@ -0,0 +1,12 @@
+# JsonApiApiTokenOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bearer_token** | **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/JsonApiApiTokenOutDocument.md b/gooddata-api-client/docs/JsonApiApiTokenOutDocument.md
new file mode 100644
index 000000000..0f8d0c67e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiApiTokenOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiApiTokenOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiApiTokenOut**](JsonApiApiTokenOut.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/JsonApiApiTokenOutList.md b/gooddata-api-client/docs/JsonApiApiTokenOutList.md
new file mode 100644
index 000000000..1e20f3fc9
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiApiTokenOutList.md
@@ -0,0 +1,14 @@
+# JsonApiApiTokenOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiApiTokenOutWithLinks]**](JsonApiApiTokenOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiApiTokenOutWithLinks.md b/gooddata-api-client/docs/JsonApiApiTokenOutWithLinks.md
new file mode 100644
index 000000000..21723e0bd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiApiTokenOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiApiTokenOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "apiToken"
+**attributes** | [**JsonApiApiTokenOutAttributes**](JsonApiApiTokenOutAttributes.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/JsonApiAttributeLinkage.md b/gooddata-api-client/docs/JsonApiAttributeLinkage.md
new file mode 100644
index 000000000..02d7b79b0
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiAttributeLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "attribute"
+**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/JsonApiAttributeOut.md b/gooddata-api-client/docs/JsonApiAttributeOut.md
new file mode 100644
index 000000000..011c2172e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeOut.md
@@ -0,0 +1,16 @@
+# JsonApiAttributeOut
+
+JSON:API representation of attribute entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "attribute"
+**attributes** | [**JsonApiAttributeOutAttributes**](JsonApiAttributeOutAttributes.md) | | [optional]
+**relationships** | [**JsonApiAttributeOutRelationships**](JsonApiAttributeOutRelationships.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/JsonApiAttributeOutAttributes.md b/gooddata-api-client/docs/JsonApiAttributeOutAttributes.md
new file mode 100644
index 000000000..e26575157
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeOutAttributes.md
@@ -0,0 +1,19 @@
+# JsonApiAttributeOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**are_relations_valid** | **bool** | | [optional]
+**description** | **str** | | [optional]
+**granularity** | **str** | | [optional]
+**sort_column** | **str** | | [optional]
+**sort_direction** | **str** | | [optional]
+**source_column** | **str** | | [optional]
+**tags** | **[str]** | | [optional]
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiAttributeOutDocument.md b/gooddata-api-client/docs/JsonApiAttributeOutDocument.md
new file mode 100644
index 000000000..5b16433f1
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiAttributeOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiAttributeOut**](JsonApiAttributeOut.md) | |
+**included** | [**[JsonApiAttributeOutIncludes]**](JsonApiAttributeOutIncludes.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]
+
+[[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/JsonApiAttributeOutIncludes.md b/gooddata-api-client/docs/JsonApiAttributeOutIncludes.md
new file mode 100644
index 000000000..35663952b
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeOutIncludes.md
@@ -0,0 +1,16 @@
+# JsonApiAttributeOutIncludes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**relationships** | [**JsonApiLabelOutRelationships**](JsonApiLabelOutRelationships.md) | | [optional]
+**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional]
+**attributes** | [**JsonApiLabelOutAttributes**](JsonApiLabelOutAttributes.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 "label"
+**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/JsonApiAttributeOutList.md b/gooddata-api-client/docs/JsonApiAttributeOutList.md
new file mode 100644
index 000000000..4b09b8bfa
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeOutList.md
@@ -0,0 +1,15 @@
+# JsonApiAttributeOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiAttributeOutWithLinks]**](JsonApiAttributeOutWithLinks.md) | |
+**included** | [**[JsonApiAttributeOutIncludes]**](JsonApiAttributeOutIncludes.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiAttributeOutRelationships.md b/gooddata-api-client/docs/JsonApiAttributeOutRelationships.md
new file mode 100644
index 000000000..f2bc2eb17
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeOutRelationships.md
@@ -0,0 +1,14 @@
+# JsonApiAttributeOutRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dataset** | [**JsonApiAttributeOutRelationshipsDataset**](JsonApiAttributeOutRelationshipsDataset.md) | | [optional]
+**default_view** | [**JsonApiAttributeOutRelationshipsDefaultView**](JsonApiAttributeOutRelationshipsDefaultView.md) | | [optional]
+**labels** | [**JsonApiAnalyticalDashboardOutRelationshipsLabels**](JsonApiAnalyticalDashboardOutRelationshipsLabels.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/JsonApiAttributeOutRelationshipsDataset.md b/gooddata-api-client/docs/JsonApiAttributeOutRelationshipsDataset.md
new file mode 100644
index 000000000..4618c1a86
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeOutRelationshipsDataset.md
@@ -0,0 +1,12 @@
+# JsonApiAttributeOutRelationshipsDataset
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDatasetToOneLinkage**](JsonApiDatasetToOneLinkage.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/JsonApiAttributeOutRelationshipsDefaultView.md b/gooddata-api-client/docs/JsonApiAttributeOutRelationshipsDefaultView.md
new file mode 100644
index 000000000..83530e046
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeOutRelationshipsDefaultView.md
@@ -0,0 +1,12 @@
+# JsonApiAttributeOutRelationshipsDefaultView
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiLabelToOneLinkage**](JsonApiLabelToOneLinkage.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/JsonApiAttributeOutWithLinks.md b/gooddata-api-client/docs/JsonApiAttributeOutWithLinks.md
new file mode 100644
index 000000000..ad1e70a61
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiAttributeOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "attribute"
+**attributes** | [**JsonApiAttributeOutAttributes**](JsonApiAttributeOutAttributes.md) | | [optional]
+**relationships** | [**JsonApiAttributeOutRelationships**](JsonApiAttributeOutRelationships.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/JsonApiAttributeToManyLinkage.md b/gooddata-api-client/docs/JsonApiAttributeToManyLinkage.md
new file mode 100644
index 000000000..cc91abf31
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiAttributeToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiAttributeLinkage]**](JsonApiAttributeLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiAttributeToOneLinkage.md b/gooddata-api-client/docs/JsonApiAttributeToOneLinkage.md
new file mode 100644
index 000000000..bb0b4a7ca
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiAttributeToOneLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiAttributeToOneLinkage
+
+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 "attribute"
+**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/JsonApiColorPaletteIn.md b/gooddata-api-client/docs/JsonApiColorPaletteIn.md
new file mode 100644
index 000000000..55f22319c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPaletteIn.md
@@ -0,0 +1,15 @@
+# JsonApiColorPaletteIn
+
+JSON:API representation of colorPalette entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiColorPaletteInAttributes**](JsonApiColorPaletteInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "colorPalette"
+**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/JsonApiColorPaletteInAttributes.md b/gooddata-api-client/docs/JsonApiColorPaletteInAttributes.md
new file mode 100644
index 000000000..a761c0562
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPaletteInAttributes.md
@@ -0,0 +1,13 @@
+# JsonApiColorPaletteInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | |
+**name** | **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/JsonApiColorPaletteInDocument.md b/gooddata-api-client/docs/JsonApiColorPaletteInDocument.md
new file mode 100644
index 000000000..675ed62fb
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPaletteInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiColorPaletteInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiColorPaletteIn**](JsonApiColorPaletteIn.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/JsonApiColorPaletteOut.md b/gooddata-api-client/docs/JsonApiColorPaletteOut.md
new file mode 100644
index 000000000..674f11653
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPaletteOut.md
@@ -0,0 +1,15 @@
+# JsonApiColorPaletteOut
+
+JSON:API representation of colorPalette entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiColorPaletteInAttributes**](JsonApiColorPaletteInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "colorPalette"
+**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/JsonApiColorPaletteOutDocument.md b/gooddata-api-client/docs/JsonApiColorPaletteOutDocument.md
new file mode 100644
index 000000000..43bb1ac80
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPaletteOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiColorPaletteOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiColorPaletteOut**](JsonApiColorPaletteOut.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/JsonApiColorPaletteOutList.md b/gooddata-api-client/docs/JsonApiColorPaletteOutList.md
new file mode 100644
index 000000000..cf73c894c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPaletteOutList.md
@@ -0,0 +1,14 @@
+# JsonApiColorPaletteOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiColorPaletteOutWithLinks]**](JsonApiColorPaletteOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiColorPaletteOutWithLinks.md b/gooddata-api-client/docs/JsonApiColorPaletteOutWithLinks.md
new file mode 100644
index 000000000..c752040ef
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPaletteOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiColorPaletteOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiColorPaletteInAttributes**](JsonApiColorPaletteInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "colorPalette"
+**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/JsonApiColorPalettePatch.md b/gooddata-api-client/docs/JsonApiColorPalettePatch.md
new file mode 100644
index 000000000..902e33bb1
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPalettePatch.md
@@ -0,0 +1,15 @@
+# JsonApiColorPalettePatch
+
+JSON:API representation of patching colorPalette entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiColorPalettePatchAttributes**](JsonApiColorPalettePatchAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "colorPalette"
+**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/JsonApiColorPalettePatchAttributes.md b/gooddata-api-client/docs/JsonApiColorPalettePatchAttributes.md
new file mode 100644
index 000000000..9c40579e8
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPalettePatchAttributes.md
@@ -0,0 +1,13 @@
+# JsonApiColorPalettePatchAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | | [optional]
+**name** | **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/JsonApiColorPalettePatchDocument.md b/gooddata-api-client/docs/JsonApiColorPalettePatchDocument.md
new file mode 100644
index 000000000..e3d97aac5
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiColorPalettePatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiColorPalettePatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiColorPalettePatch**](JsonApiColorPalettePatch.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/JsonApiCookieSecurityConfigurationIn.md b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationIn.md
new file mode 100644
index 000000000..c27002e51
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationIn.md
@@ -0,0 +1,15 @@
+# JsonApiCookieSecurityConfigurationIn
+
+JSON:API representation of cookieSecurityConfiguration entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "cookieSecurityConfiguration"
+**attributes** | [**JsonApiCookieSecurityConfigurationInAttributes**](JsonApiCookieSecurityConfigurationInAttributes.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/JsonApiCookieSecurityConfigurationInAttributes.md b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationInAttributes.md
new file mode 100644
index 000000000..e3a35122f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationInAttributes.md
@@ -0,0 +1,13 @@
+# JsonApiCookieSecurityConfigurationInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**last_rotation** | **datetime** | | [optional]
+**rotation_interval** | **str** | Length of interval between automatic rotations expressed in format of ISO 8601 duration | [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/JsonApiCookieSecurityConfigurationInDocument.md b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationInDocument.md
new file mode 100644
index 000000000..b474d3e41
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiCookieSecurityConfigurationInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiCookieSecurityConfigurationIn**](JsonApiCookieSecurityConfigurationIn.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/JsonApiCookieSecurityConfigurationOut.md b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationOut.md
new file mode 100644
index 000000000..5a9aaad86
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationOut.md
@@ -0,0 +1,15 @@
+# JsonApiCookieSecurityConfigurationOut
+
+JSON:API representation of cookieSecurityConfiguration entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "cookieSecurityConfiguration"
+**attributes** | [**JsonApiCookieSecurityConfigurationInAttributes**](JsonApiCookieSecurityConfigurationInAttributes.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/JsonApiCookieSecurityConfigurationOutDocument.md b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationOutDocument.md
new file mode 100644
index 000000000..51c0fd836
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiCookieSecurityConfigurationOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiCookieSecurityConfigurationOut**](JsonApiCookieSecurityConfigurationOut.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/JsonApiCookieSecurityConfigurationPatch.md b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationPatch.md
new file mode 100644
index 000000000..6bae98a06
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationPatch.md
@@ -0,0 +1,15 @@
+# JsonApiCookieSecurityConfigurationPatch
+
+JSON:API representation of patching cookieSecurityConfiguration entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "cookieSecurityConfiguration"
+**attributes** | [**JsonApiCookieSecurityConfigurationInAttributes**](JsonApiCookieSecurityConfigurationInAttributes.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/JsonApiCookieSecurityConfigurationPatchDocument.md b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationPatchDocument.md
new file mode 100644
index 000000000..02cc00d58
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCookieSecurityConfigurationPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiCookieSecurityConfigurationPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiCookieSecurityConfigurationPatch**](JsonApiCookieSecurityConfigurationPatch.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/JsonApiCspDirectiveIn.md b/gooddata-api-client/docs/JsonApiCspDirectiveIn.md
new file mode 100644
index 000000000..f84bbac17
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectiveIn.md
@@ -0,0 +1,15 @@
+# JsonApiCspDirectiveIn
+
+JSON:API representation of cspDirective entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiCspDirectiveInAttributes**](JsonApiCspDirectiveInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "cspDirective"
+**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/JsonApiCspDirectiveInAttributes.md b/gooddata-api-client/docs/JsonApiCspDirectiveInAttributes.md
new file mode 100644
index 000000000..50ba70105
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectiveInAttributes.md
@@ -0,0 +1,12 @@
+# JsonApiCspDirectiveInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**sources** | **[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/JsonApiCspDirectiveInDocument.md b/gooddata-api-client/docs/JsonApiCspDirectiveInDocument.md
new file mode 100644
index 000000000..892e9cd6d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectiveInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiCspDirectiveInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiCspDirectiveIn**](JsonApiCspDirectiveIn.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/JsonApiCspDirectiveOut.md b/gooddata-api-client/docs/JsonApiCspDirectiveOut.md
new file mode 100644
index 000000000..c32d67948
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectiveOut.md
@@ -0,0 +1,15 @@
+# JsonApiCspDirectiveOut
+
+JSON:API representation of cspDirective entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiCspDirectiveInAttributes**](JsonApiCspDirectiveInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "cspDirective"
+**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/JsonApiCspDirectiveOutDocument.md b/gooddata-api-client/docs/JsonApiCspDirectiveOutDocument.md
new file mode 100644
index 000000000..9cdaa1df6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectiveOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiCspDirectiveOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiCspDirectiveOut**](JsonApiCspDirectiveOut.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/JsonApiCspDirectiveOutList.md b/gooddata-api-client/docs/JsonApiCspDirectiveOutList.md
new file mode 100644
index 000000000..7422b82a7
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectiveOutList.md
@@ -0,0 +1,14 @@
+# JsonApiCspDirectiveOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiCspDirectiveOutWithLinks]**](JsonApiCspDirectiveOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiCspDirectiveOutWithLinks.md b/gooddata-api-client/docs/JsonApiCspDirectiveOutWithLinks.md
new file mode 100644
index 000000000..79f10a257
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectiveOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiCspDirectiveOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiCspDirectiveInAttributes**](JsonApiCspDirectiveInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "cspDirective"
+**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/JsonApiCspDirectivePatch.md b/gooddata-api-client/docs/JsonApiCspDirectivePatch.md
new file mode 100644
index 000000000..8b9076ff4
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectivePatch.md
@@ -0,0 +1,15 @@
+# JsonApiCspDirectivePatch
+
+JSON:API representation of patching cspDirective entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiCspDirectivePatchAttributes**](JsonApiCspDirectivePatchAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "cspDirective"
+**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/JsonApiCspDirectivePatchAttributes.md b/gooddata-api-client/docs/JsonApiCspDirectivePatchAttributes.md
new file mode 100644
index 000000000..fa3a1fdd5
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectivePatchAttributes.md
@@ -0,0 +1,12 @@
+# JsonApiCspDirectivePatchAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**sources** | **[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/JsonApiCspDirectivePatchDocument.md b/gooddata-api-client/docs/JsonApiCspDirectivePatchDocument.md
new file mode 100644
index 000000000..0f3bf0969
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiCspDirectivePatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiCspDirectivePatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiCspDirectivePatch**](JsonApiCspDirectivePatch.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/JsonApiDashboardPluginIn.md b/gooddata-api-client/docs/JsonApiDashboardPluginIn.md
new file mode 100644
index 000000000..f99e292e9
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginIn.md
@@ -0,0 +1,15 @@
+# JsonApiDashboardPluginIn
+
+JSON:API representation of dashboardPlugin entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dashboardPlugin"
+**attributes** | [**JsonApiDashboardPluginInAttributes**](JsonApiDashboardPluginInAttributes.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/JsonApiDashboardPluginInAttributes.md b/gooddata-api-client/docs/JsonApiDashboardPluginInAttributes.md
new file mode 100644
index 000000000..94595dfd4
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginInAttributes.md
@@ -0,0 +1,16 @@
+# JsonApiDashboardPluginInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**are_relations_valid** | **bool** | | [optional]
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Free-form JSON content. | [optional]
+**description** | **str** | | [optional]
+**tags** | **[str]** | | [optional]
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiDashboardPluginInDocument.md b/gooddata-api-client/docs/JsonApiDashboardPluginInDocument.md
new file mode 100644
index 000000000..ae638e90e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiDashboardPluginInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDashboardPluginIn**](JsonApiDashboardPluginIn.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/JsonApiDashboardPluginLinkage.md b/gooddata-api-client/docs/JsonApiDashboardPluginLinkage.md
new file mode 100644
index 000000000..779fc4eaa
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiDashboardPluginLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "dashboardPlugin"
+**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/JsonApiDashboardPluginOut.md b/gooddata-api-client/docs/JsonApiDashboardPluginOut.md
new file mode 100644
index 000000000..da7ce653e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginOut.md
@@ -0,0 +1,15 @@
+# JsonApiDashboardPluginOut
+
+JSON:API representation of dashboardPlugin entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dashboardPlugin"
+**attributes** | [**JsonApiDashboardPluginInAttributes**](JsonApiDashboardPluginInAttributes.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/JsonApiDashboardPluginOutDocument.md b/gooddata-api-client/docs/JsonApiDashboardPluginOutDocument.md
new file mode 100644
index 000000000..d5028ba4a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiDashboardPluginOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDashboardPluginOut**](JsonApiDashboardPluginOut.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/JsonApiDashboardPluginOutList.md b/gooddata-api-client/docs/JsonApiDashboardPluginOutList.md
new file mode 100644
index 000000000..6e4b77f55
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginOutList.md
@@ -0,0 +1,14 @@
+# JsonApiDashboardPluginOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiDashboardPluginOutWithLinks]**](JsonApiDashboardPluginOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiDashboardPluginOutWithLinks.md b/gooddata-api-client/docs/JsonApiDashboardPluginOutWithLinks.md
new file mode 100644
index 000000000..77bccc51e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiDashboardPluginOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dashboardPlugin"
+**attributes** | [**JsonApiDashboardPluginInAttributes**](JsonApiDashboardPluginInAttributes.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/JsonApiDashboardPluginPatch.md b/gooddata-api-client/docs/JsonApiDashboardPluginPatch.md
new file mode 100644
index 000000000..d43917b84
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginPatch.md
@@ -0,0 +1,15 @@
+# JsonApiDashboardPluginPatch
+
+JSON:API representation of patching dashboardPlugin entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dashboardPlugin"
+**attributes** | [**JsonApiDashboardPluginInAttributes**](JsonApiDashboardPluginInAttributes.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/JsonApiDashboardPluginPatchDocument.md b/gooddata-api-client/docs/JsonApiDashboardPluginPatchDocument.md
new file mode 100644
index 000000000..573bbcd53
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiDashboardPluginPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDashboardPluginPatch**](JsonApiDashboardPluginPatch.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/JsonApiDashboardPluginToManyLinkage.md b/gooddata-api-client/docs/JsonApiDashboardPluginToManyLinkage.md
new file mode 100644
index 000000000..ba28e0e97
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDashboardPluginToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiDashboardPluginToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiDashboardPluginLinkage]**](JsonApiDashboardPluginLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiDataSourceIdentifierOut.md b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOut.md
new file mode 100644
index 000000000..ee39744c2
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOut.md
@@ -0,0 +1,16 @@
+# JsonApiDataSourceIdentifierOut
+
+JSON:API representation of dataSourceIdentifier entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDataSourceIdentifierOutAttributes**](JsonApiDataSourceIdentifierOutAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataSourceIdentifier"
+**meta** | [**JsonApiDataSourceIdentifierOutMeta**](JsonApiDataSourceIdentifierOutMeta.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/JsonApiDataSourceIdentifierOutAttributes.md b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutAttributes.md
new file mode 100644
index 000000000..6636d682e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutAttributes.md
@@ -0,0 +1,14 @@
+# JsonApiDataSourceIdentifierOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+**schema** | **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/JsonApiDataSourceIdentifierOutDocument.md b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutDocument.md
new file mode 100644
index 000000000..66090dc9f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiDataSourceIdentifierOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDataSourceIdentifierOut**](JsonApiDataSourceIdentifierOut.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/JsonApiDataSourceIdentifierOutList.md b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutList.md
new file mode 100644
index 000000000..2bc5b1c73
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutList.md
@@ -0,0 +1,14 @@
+# JsonApiDataSourceIdentifierOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiDataSourceIdentifierOutWithLinks]**](JsonApiDataSourceIdentifierOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiDataSourceIdentifierOutMeta.md b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutMeta.md
new file mode 100644
index 000000000..f18f86225
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutMeta.md
@@ -0,0 +1,12 @@
+# JsonApiDataSourceIdentifierOutMeta
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**permissions** | **[str]** | List of valid permissions for a logged user. | [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/JsonApiDataSourceIdentifierOutWithLinks.md b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutWithLinks.md
new file mode 100644
index 000000000..3bb1f890d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceIdentifierOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiDataSourceIdentifierOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDataSourceIdentifierOutAttributes**](JsonApiDataSourceIdentifierOutAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataSourceIdentifier"
+**meta** | [**JsonApiDataSourceIdentifierOutMeta**](JsonApiDataSourceIdentifierOutMeta.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/JsonApiDataSourceIn.md b/gooddata-api-client/docs/JsonApiDataSourceIn.md
new file mode 100644
index 000000000..0d397872b
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceIn.md
@@ -0,0 +1,15 @@
+# JsonApiDataSourceIn
+
+JSON:API representation of dataSource entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDataSourceInAttributes**](JsonApiDataSourceInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataSource"
+**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/JsonApiDataSourceInAttributes.md b/gooddata-api-client/docs/JsonApiDataSourceInAttributes.md
new file mode 100644
index 000000000..5818976ba
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceInAttributes.md
@@ -0,0 +1,21 @@
+# JsonApiDataSourceInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+**schema** | **str** | |
+**type** | **str** | |
+**cache_path** | **[str]** | | [optional]
+**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
+**parameters** | [**[JsonApiDataSourceInAttributesParametersInner]**](JsonApiDataSourceInAttributesParametersInner.md) | | [optional]
+**password** | **str** | | [optional]
+**token** | **str** | | [optional]
+**url** | **str** | | [optional]
+**username** | **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/JsonApiDataSourceInAttributesParametersInner.md b/gooddata-api-client/docs/JsonApiDataSourceInAttributesParametersInner.md
new file mode 100644
index 000000000..cfafc7e30
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceInAttributesParametersInner.md
@@ -0,0 +1,13 @@
+# JsonApiDataSourceInAttributesParametersInner
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+**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/JsonApiDataSourceInDocument.md b/gooddata-api-client/docs/JsonApiDataSourceInDocument.md
new file mode 100644
index 000000000..4c377574c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiDataSourceInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDataSourceIn**](JsonApiDataSourceIn.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/JsonApiDataSourceOut.md b/gooddata-api-client/docs/JsonApiDataSourceOut.md
new file mode 100644
index 000000000..073b0479f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceOut.md
@@ -0,0 +1,16 @@
+# JsonApiDataSourceOut
+
+JSON:API representation of dataSource entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDataSourceOutAttributes**](JsonApiDataSourceOutAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataSource"
+**meta** | [**JsonApiDataSourceIdentifierOutMeta**](JsonApiDataSourceIdentifierOutMeta.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/JsonApiDataSourceOutAttributes.md b/gooddata-api-client/docs/JsonApiDataSourceOutAttributes.md
new file mode 100644
index 000000000..e08a5f8a9
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceOutAttributes.md
@@ -0,0 +1,20 @@
+# JsonApiDataSourceOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+**schema** | **str** | |
+**type** | **str** | |
+**cache_path** | **[str]** | | [optional]
+**decoded_parameters** | [**[JsonApiDataSourceInAttributesParametersInner]**](JsonApiDataSourceInAttributesParametersInner.md) | | [optional]
+**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
+**parameters** | [**[JsonApiDataSourceInAttributesParametersInner]**](JsonApiDataSourceInAttributesParametersInner.md) | | [optional]
+**url** | **str** | | [optional]
+**username** | **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/JsonApiDataSourceOutDocument.md b/gooddata-api-client/docs/JsonApiDataSourceOutDocument.md
new file mode 100644
index 000000000..7db5a8db5
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiDataSourceOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDataSourceOut**](JsonApiDataSourceOut.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/JsonApiDataSourceOutList.md b/gooddata-api-client/docs/JsonApiDataSourceOutList.md
new file mode 100644
index 000000000..04a447b8b
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceOutList.md
@@ -0,0 +1,14 @@
+# JsonApiDataSourceOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiDataSourceOutWithLinks]**](JsonApiDataSourceOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiDataSourceOutWithLinks.md b/gooddata-api-client/docs/JsonApiDataSourceOutWithLinks.md
new file mode 100644
index 000000000..ef998c7f1
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiDataSourceOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDataSourceOutAttributes**](JsonApiDataSourceOutAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataSource"
+**meta** | [**JsonApiDataSourceIdentifierOutMeta**](JsonApiDataSourceIdentifierOutMeta.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/JsonApiDataSourcePatch.md b/gooddata-api-client/docs/JsonApiDataSourcePatch.md
new file mode 100644
index 000000000..d2107d635
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourcePatch.md
@@ -0,0 +1,15 @@
+# JsonApiDataSourcePatch
+
+JSON:API representation of patching dataSource entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDataSourcePatchAttributes**](JsonApiDataSourcePatchAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataSource"
+**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/JsonApiDataSourcePatchAttributes.md b/gooddata-api-client/docs/JsonApiDataSourcePatchAttributes.md
new file mode 100644
index 000000000..39c40e6b8
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourcePatchAttributes.md
@@ -0,0 +1,21 @@
+# JsonApiDataSourcePatchAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**cache_path** | **[str]** | | [optional]
+**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
+**name** | **str** | | [optional]
+**parameters** | [**[JsonApiDataSourceInAttributesParametersInner]**](JsonApiDataSourceInAttributesParametersInner.md) | | [optional]
+**password** | **str** | | [optional]
+**schema** | **str** | | [optional]
+**token** | **str** | | [optional]
+**type** | **str** | | [optional]
+**url** | **str** | | [optional]
+**username** | **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/JsonApiDataSourcePatchDocument.md b/gooddata-api-client/docs/JsonApiDataSourcePatchDocument.md
new file mode 100644
index 000000000..21ac42572
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourcePatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiDataSourcePatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDataSourcePatch**](JsonApiDataSourcePatch.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/JsonApiDataSourceTableOut.md b/gooddata-api-client/docs/JsonApiDataSourceTableOut.md
new file mode 100644
index 000000000..14c8ef71f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceTableOut.md
@@ -0,0 +1,15 @@
+# JsonApiDataSourceTableOut
+
+Tables in data source
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDataSourceTableOutAttributes**](JsonApiDataSourceTableOutAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataSourceTable"
+**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/JsonApiDataSourceTableOutAttributes.md b/gooddata-api-client/docs/JsonApiDataSourceTableOutAttributes.md
new file mode 100644
index 000000000..4dd7b9713
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceTableOutAttributes.md
@@ -0,0 +1,15 @@
+# JsonApiDataSourceTableOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**columns** | [**[JsonApiDataSourceTableOutAttributesColumnsInner]**](JsonApiDataSourceTableOutAttributesColumnsInner.md) | |
+**name_prefix** | **str** | | [optional]
+**path** | **[str]** | Path to table. | [optional]
+**type** | **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/JsonApiDataSourceTableOutAttributesColumnsInner.md b/gooddata-api-client/docs/JsonApiDataSourceTableOutAttributesColumnsInner.md
new file mode 100644
index 000000000..98537fd15
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceTableOutAttributesColumnsInner.md
@@ -0,0 +1,17 @@
+# JsonApiDataSourceTableOutAttributesColumnsInner
+
+Table columns in data source
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data_type** | **str** | |
+**name** | **str** | |
+**is_primary_key** | **bool** | | [optional]
+**referenced_table_column** | **str** | | [optional]
+**referenced_table_id** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiDataSourceTableOutDocument.md b/gooddata-api-client/docs/JsonApiDataSourceTableOutDocument.md
new file mode 100644
index 000000000..d02e75ba6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceTableOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiDataSourceTableOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDataSourceTableOut**](JsonApiDataSourceTableOut.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/JsonApiDataSourceTableOutList.md b/gooddata-api-client/docs/JsonApiDataSourceTableOutList.md
new file mode 100644
index 000000000..e184e6990
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceTableOutList.md
@@ -0,0 +1,14 @@
+# JsonApiDataSourceTableOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiDataSourceTableOutWithLinks]**](JsonApiDataSourceTableOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiDataSourceTableOutWithLinks.md b/gooddata-api-client/docs/JsonApiDataSourceTableOutWithLinks.md
new file mode 100644
index 000000000..89bcce69e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDataSourceTableOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiDataSourceTableOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDataSourceTableOutAttributes**](JsonApiDataSourceTableOutAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataSourceTable"
+**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/JsonApiDatasetLinkage.md b/gooddata-api-client/docs/JsonApiDatasetLinkage.md
new file mode 100644
index 000000000..450c9791d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiDatasetLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "dataset"
+**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/JsonApiDatasetOut.md b/gooddata-api-client/docs/JsonApiDatasetOut.md
new file mode 100644
index 000000000..60a7732c6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOut.md
@@ -0,0 +1,16 @@
+# JsonApiDatasetOut
+
+JSON:API representation of dataset entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDatasetOutAttributes**](JsonApiDatasetOutAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataset"
+**relationships** | [**JsonApiDatasetOutRelationships**](JsonApiDatasetOutRelationships.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/JsonApiDatasetOutAttributes.md b/gooddata-api-client/docs/JsonApiDatasetOutAttributes.md
new file mode 100644
index 000000000..e882c4dcd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutAttributes.md
@@ -0,0 +1,19 @@
+# JsonApiDatasetOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**are_relations_valid** | **bool** | | [optional]
+**data_source_table_id** | **str** | | [optional]
+**description** | **str** | | [optional]
+**grain** | [**[JsonApiDatasetOutAttributesGrainInner]**](JsonApiDatasetOutAttributesGrainInner.md) | | [optional]
+**reference_properties** | [**[JsonApiDatasetOutAttributesReferencePropertiesInner]**](JsonApiDatasetOutAttributesReferencePropertiesInner.md) | | [optional]
+**tags** | **[str]** | | [optional]
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiDatasetOutAttributesGrainInner.md b/gooddata-api-client/docs/JsonApiDatasetOutAttributesGrainInner.md
new file mode 100644
index 000000000..b8208d171
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutAttributesGrainInner.md
@@ -0,0 +1,13 @@
+# JsonApiDatasetOutAttributesGrainInner
+
+
+## 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/JsonApiDatasetOutAttributesReferencePropertiesInner.md b/gooddata-api-client/docs/JsonApiDatasetOutAttributesReferencePropertiesInner.md
new file mode 100644
index 000000000..7049618e0
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutAttributesReferencePropertiesInner.md
@@ -0,0 +1,14 @@
+# JsonApiDatasetOutAttributesReferencePropertiesInner
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**identifier** | [**DatasetReferenceIdentifier**](DatasetReferenceIdentifier.md) | |
+**multivalue** | **bool** | |
+**source_columns** | **[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/JsonApiDatasetOutDocument.md b/gooddata-api-client/docs/JsonApiDatasetOutDocument.md
new file mode 100644
index 000000000..ede30b1c5
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiDatasetOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiDatasetOut**](JsonApiDatasetOut.md) | |
+**included** | [**[JsonApiDatasetOutIncludes]**](JsonApiDatasetOutIncludes.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]
+
+[[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/JsonApiDatasetOutIncludes.md b/gooddata-api-client/docs/JsonApiDatasetOutIncludes.md
new file mode 100644
index 000000000..a294aaf48
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutIncludes.md
@@ -0,0 +1,16 @@
+# JsonApiDatasetOutIncludes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**relationships** | [**JsonApiDatasetOutRelationships**](JsonApiDatasetOutRelationships.md) | | [optional]
+**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional]
+**attributes** | [**JsonApiDatasetOutAttributes**](JsonApiDatasetOutAttributes.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 "dataset"
+**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/JsonApiDatasetOutList.md b/gooddata-api-client/docs/JsonApiDatasetOutList.md
new file mode 100644
index 000000000..b906efb2c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutList.md
@@ -0,0 +1,15 @@
+# JsonApiDatasetOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiDatasetOutWithLinks]**](JsonApiDatasetOutWithLinks.md) | |
+**included** | [**[JsonApiDatasetOutIncludes]**](JsonApiDatasetOutIncludes.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiDatasetOutRelationships.md b/gooddata-api-client/docs/JsonApiDatasetOutRelationships.md
new file mode 100644
index 000000000..35bda301e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutRelationships.md
@@ -0,0 +1,14 @@
+# JsonApiDatasetOutRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDatasetOutRelationshipsAttributes**](JsonApiDatasetOutRelationshipsAttributes.md) | | [optional]
+**facts** | [**JsonApiDatasetOutRelationshipsFacts**](JsonApiDatasetOutRelationshipsFacts.md) | | [optional]
+**references** | [**JsonApiAnalyticalDashboardOutRelationshipsDatasets**](JsonApiAnalyticalDashboardOutRelationshipsDatasets.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/JsonApiDatasetOutRelationshipsAttributes.md b/gooddata-api-client/docs/JsonApiDatasetOutRelationshipsAttributes.md
new file mode 100644
index 000000000..a2607b390
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutRelationshipsAttributes.md
@@ -0,0 +1,12 @@
+# JsonApiDatasetOutRelationshipsAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiAttributeToManyLinkage**](JsonApiAttributeToManyLinkage.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/JsonApiDatasetOutRelationshipsFacts.md b/gooddata-api-client/docs/JsonApiDatasetOutRelationshipsFacts.md
new file mode 100644
index 000000000..3393fb6f5
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutRelationshipsFacts.md
@@ -0,0 +1,12 @@
+# JsonApiDatasetOutRelationshipsFacts
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiFactToManyLinkage**](JsonApiFactToManyLinkage.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/JsonApiDatasetOutWithLinks.md b/gooddata-api-client/docs/JsonApiDatasetOutWithLinks.md
new file mode 100644
index 000000000..777d82fc8
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiDatasetOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDatasetOutAttributes**](JsonApiDatasetOutAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "dataset"
+**relationships** | [**JsonApiDatasetOutRelationships**](JsonApiDatasetOutRelationships.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/JsonApiDatasetToManyLinkage.md b/gooddata-api-client/docs/JsonApiDatasetToManyLinkage.md
new file mode 100644
index 000000000..c05fae7e9
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiDatasetToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiDatasetLinkage]**](JsonApiDatasetLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiDatasetToOneLinkage.md b/gooddata-api-client/docs/JsonApiDatasetToOneLinkage.md
new file mode 100644
index 000000000..4b61452f2
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiDatasetToOneLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiDatasetToOneLinkage
+
+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 "dataset"
+**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/JsonApiEntitlementOut.md b/gooddata-api-client/docs/JsonApiEntitlementOut.md
new file mode 100644
index 000000000..8f70260cd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiEntitlementOut.md
@@ -0,0 +1,15 @@
+# JsonApiEntitlementOut
+
+JSON:API representation of entitlement entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "entitlement"
+**attributes** | [**JsonApiEntitlementOutAttributes**](JsonApiEntitlementOutAttributes.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/JsonApiEntitlementOutAttributes.md b/gooddata-api-client/docs/JsonApiEntitlementOutAttributes.md
new file mode 100644
index 000000000..ccb0744bd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiEntitlementOutAttributes.md
@@ -0,0 +1,13 @@
+# JsonApiEntitlementOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**expiry** | **date** | | [optional]
+**value** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiEntitlementOutDocument.md b/gooddata-api-client/docs/JsonApiEntitlementOutDocument.md
new file mode 100644
index 000000000..7854da19d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiEntitlementOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiEntitlementOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiEntitlementOut**](JsonApiEntitlementOut.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/JsonApiEntitlementOutList.md b/gooddata-api-client/docs/JsonApiEntitlementOutList.md
new file mode 100644
index 000000000..6950f5e29
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiEntitlementOutList.md
@@ -0,0 +1,14 @@
+# JsonApiEntitlementOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiEntitlementOutWithLinks]**](JsonApiEntitlementOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiEntitlementOutWithLinks.md b/gooddata-api-client/docs/JsonApiEntitlementOutWithLinks.md
new file mode 100644
index 000000000..5f45d44dd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiEntitlementOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiEntitlementOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "entitlement"
+**attributes** | [**JsonApiEntitlementOutAttributes**](JsonApiEntitlementOutAttributes.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/JsonApiFactLinkage.md b/gooddata-api-client/docs/JsonApiFactLinkage.md
new file mode 100644
index 000000000..db4e12ec3
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFactLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiFactLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | 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/JsonApiFactOut.md b/gooddata-api-client/docs/JsonApiFactOut.md
new file mode 100644
index 000000000..957aabff6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFactOut.md
@@ -0,0 +1,16 @@
+# JsonApiFactOut
+
+JSON:API representation of fact entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "fact"
+**attributes** | [**JsonApiFactOutAttributes**](JsonApiFactOutAttributes.md) | | [optional]
+**relationships** | [**JsonApiFactOutRelationships**](JsonApiFactOutRelationships.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/JsonApiFactOutAttributes.md b/gooddata-api-client/docs/JsonApiFactOutAttributes.md
new file mode 100644
index 000000000..195012e1a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFactOutAttributes.md
@@ -0,0 +1,16 @@
+# JsonApiFactOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**are_relations_valid** | **bool** | | [optional]
+**description** | **str** | | [optional]
+**source_column** | **str** | | [optional]
+**tags** | **[str]** | | [optional]
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiFactOutDocument.md b/gooddata-api-client/docs/JsonApiFactOutDocument.md
new file mode 100644
index 000000000..72447c2f6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFactOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiFactOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiFactOut**](JsonApiFactOut.md) | |
+**included** | [**[JsonApiDatasetOutWithLinks]**](JsonApiDatasetOutWithLinks.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]
+
+[[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
new file mode 100644
index 000000000..fe0892807
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFactOutList.md
@@ -0,0 +1,15 @@
+# JsonApiFactOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiFactOutWithLinks]**](JsonApiFactOutWithLinks.md) | |
+**included** | [**[JsonApiDatasetOutWithLinks]**](JsonApiDatasetOutWithLinks.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiFactOutRelationships.md b/gooddata-api-client/docs/JsonApiFactOutRelationships.md
new file mode 100644
index 000000000..009973c96
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFactOutRelationships.md
@@ -0,0 +1,12 @@
+# JsonApiFactOutRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dataset** | [**JsonApiAttributeOutRelationshipsDataset**](JsonApiAttributeOutRelationshipsDataset.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/JsonApiFactOutWithLinks.md b/gooddata-api-client/docs/JsonApiFactOutWithLinks.md
new file mode 100644
index 000000000..1dc82fdca
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFactOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiFactOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "fact"
+**attributes** | [**JsonApiFactOutAttributes**](JsonApiFactOutAttributes.md) | | [optional]
+**relationships** | [**JsonApiFactOutRelationships**](JsonApiFactOutRelationships.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/JsonApiFactToManyLinkage.md b/gooddata-api-client/docs/JsonApiFactToManyLinkage.md
new file mode 100644
index 000000000..d5b36facb
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFactToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiFactToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiFactLinkage]**](JsonApiFactLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiFilterContextIn.md b/gooddata-api-client/docs/JsonApiFilterContextIn.md
new file mode 100644
index 000000000..29837561f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextIn.md
@@ -0,0 +1,15 @@
+# JsonApiFilterContextIn
+
+JSON:API representation of filterContext entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "filterContext"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.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/JsonApiFilterContextInDocument.md b/gooddata-api-client/docs/JsonApiFilterContextInDocument.md
new file mode 100644
index 000000000..27dba1382
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiFilterContextInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiFilterContextIn**](JsonApiFilterContextIn.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/JsonApiFilterContextLinkage.md b/gooddata-api-client/docs/JsonApiFilterContextLinkage.md
new file mode 100644
index 000000000..49adbd48e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiFilterContextLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "filterContext"
+**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/JsonApiFilterContextOut.md b/gooddata-api-client/docs/JsonApiFilterContextOut.md
new file mode 100644
index 000000000..5e5ef17dd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextOut.md
@@ -0,0 +1,16 @@
+# JsonApiFilterContextOut
+
+JSON:API representation of filterContext entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "filterContext"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.md) | | [optional]
+**relationships** | [**JsonApiFilterContextOutRelationships**](JsonApiFilterContextOutRelationships.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/JsonApiFilterContextOutDocument.md b/gooddata-api-client/docs/JsonApiFilterContextOutDocument.md
new file mode 100644
index 000000000..f1dbb76cc
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiFilterContextOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiFilterContextOut**](JsonApiFilterContextOut.md) | |
+**included** | [**[JsonApiFilterContextOutIncludes]**](JsonApiFilterContextOutIncludes.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]
+
+[[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/JsonApiFilterContextOutIncludes.md b/gooddata-api-client/docs/JsonApiFilterContextOutIncludes.md
new file mode 100644
index 000000000..a1f4eac04
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextOutIncludes.md
@@ -0,0 +1,16 @@
+# JsonApiFilterContextOutIncludes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**relationships** | [**JsonApiLabelOutRelationships**](JsonApiLabelOutRelationships.md) | | [optional]
+**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional]
+**attributes** | [**JsonApiLabelOutAttributes**](JsonApiLabelOutAttributes.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 "label"
+**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/JsonApiFilterContextOutList.md b/gooddata-api-client/docs/JsonApiFilterContextOutList.md
new file mode 100644
index 000000000..92626e6e9
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextOutList.md
@@ -0,0 +1,15 @@
+# JsonApiFilterContextOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiFilterContextOutWithLinks]**](JsonApiFilterContextOutWithLinks.md) | |
+**included** | [**[JsonApiFilterContextOutIncludes]**](JsonApiFilterContextOutIncludes.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiFilterContextOutRelationships.md b/gooddata-api-client/docs/JsonApiFilterContextOutRelationships.md
new file mode 100644
index 000000000..32fa82b0f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextOutRelationships.md
@@ -0,0 +1,14 @@
+# JsonApiFilterContextOutRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDatasetOutRelationshipsAttributes**](JsonApiDatasetOutRelationshipsAttributes.md) | | [optional]
+**datasets** | [**JsonApiAnalyticalDashboardOutRelationshipsDatasets**](JsonApiAnalyticalDashboardOutRelationshipsDatasets.md) | | [optional]
+**labels** | [**JsonApiAnalyticalDashboardOutRelationshipsLabels**](JsonApiAnalyticalDashboardOutRelationshipsLabels.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/JsonApiFilterContextOutWithLinks.md b/gooddata-api-client/docs/JsonApiFilterContextOutWithLinks.md
new file mode 100644
index 000000000..8780a31f1
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiFilterContextOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "filterContext"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.md) | | [optional]
+**relationships** | [**JsonApiFilterContextOutRelationships**](JsonApiFilterContextOutRelationships.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/JsonApiFilterContextPatch.md b/gooddata-api-client/docs/JsonApiFilterContextPatch.md
new file mode 100644
index 000000000..2beccb662
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextPatch.md
@@ -0,0 +1,15 @@
+# JsonApiFilterContextPatch
+
+JSON:API representation of patching filterContext entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "filterContext"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.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/JsonApiFilterContextPatchDocument.md b/gooddata-api-client/docs/JsonApiFilterContextPatchDocument.md
new file mode 100644
index 000000000..8509ddaf8
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiFilterContextPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiFilterContextPatch**](JsonApiFilterContextPatch.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/JsonApiFilterContextToManyLinkage.md b/gooddata-api-client/docs/JsonApiFilterContextToManyLinkage.md
new file mode 100644
index 000000000..b2712baa1
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiFilterContextToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiFilterContextToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiFilterContextLinkage]**](JsonApiFilterContextLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiLabelLinkage.md b/gooddata-api-client/docs/JsonApiLabelLinkage.md
new file mode 100644
index 000000000..e96bb852c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiLabelLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "label"
+**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/JsonApiLabelOut.md b/gooddata-api-client/docs/JsonApiLabelOut.md
new file mode 100644
index 000000000..952448373
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelOut.md
@@ -0,0 +1,16 @@
+# JsonApiLabelOut
+
+JSON:API representation of label entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "label"
+**attributes** | [**JsonApiLabelOutAttributes**](JsonApiLabelOutAttributes.md) | | [optional]
+**relationships** | [**JsonApiLabelOutRelationships**](JsonApiLabelOutRelationships.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/JsonApiLabelOutAttributes.md b/gooddata-api-client/docs/JsonApiLabelOutAttributes.md
new file mode 100644
index 000000000..be3613d4d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelOutAttributes.md
@@ -0,0 +1,18 @@
+# JsonApiLabelOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**are_relations_valid** | **bool** | | [optional]
+**description** | **str** | | [optional]
+**primary** | **bool** | | [optional]
+**source_column** | **str** | | [optional]
+**tags** | **[str]** | | [optional]
+**title** | **str** | | [optional]
+**value_type** | **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/JsonApiLabelOutDocument.md b/gooddata-api-client/docs/JsonApiLabelOutDocument.md
new file mode 100644
index 000000000..4ec6bb577
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiLabelOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiLabelOut**](JsonApiLabelOut.md) | |
+**included** | [**[JsonApiAttributeOutWithLinks]**](JsonApiAttributeOutWithLinks.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]
+
+[[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/JsonApiLabelOutList.md b/gooddata-api-client/docs/JsonApiLabelOutList.md
new file mode 100644
index 000000000..59ae31ff3
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelOutList.md
@@ -0,0 +1,15 @@
+# JsonApiLabelOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiLabelOutWithLinks]**](JsonApiLabelOutWithLinks.md) | |
+**included** | [**[JsonApiAttributeOutWithLinks]**](JsonApiAttributeOutWithLinks.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiLabelOutRelationships.md b/gooddata-api-client/docs/JsonApiLabelOutRelationships.md
new file mode 100644
index 000000000..3108e5571
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelOutRelationships.md
@@ -0,0 +1,12 @@
+# JsonApiLabelOutRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute** | [**JsonApiLabelOutRelationshipsAttribute**](JsonApiLabelOutRelationshipsAttribute.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/JsonApiLabelOutRelationshipsAttribute.md b/gooddata-api-client/docs/JsonApiLabelOutRelationshipsAttribute.md
new file mode 100644
index 000000000..566d1ac64
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelOutRelationshipsAttribute.md
@@ -0,0 +1,12 @@
+# JsonApiLabelOutRelationshipsAttribute
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiAttributeToOneLinkage**](JsonApiAttributeToOneLinkage.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/JsonApiLabelOutWithLinks.md b/gooddata-api-client/docs/JsonApiLabelOutWithLinks.md
new file mode 100644
index 000000000..289bc0bd7
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiLabelOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "label"
+**attributes** | [**JsonApiLabelOutAttributes**](JsonApiLabelOutAttributes.md) | | [optional]
+**relationships** | [**JsonApiLabelOutRelationships**](JsonApiLabelOutRelationships.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/JsonApiLabelToManyLinkage.md b/gooddata-api-client/docs/JsonApiLabelToManyLinkage.md
new file mode 100644
index 000000000..26efa66ea
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiLabelToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiLabelLinkage]**](JsonApiLabelLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiLabelToOneLinkage.md b/gooddata-api-client/docs/JsonApiLabelToOneLinkage.md
new file mode 100644
index 000000000..191010a6e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiLabelToOneLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiLabelToOneLinkage
+
+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 "label"
+**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/JsonApiMetricIn.md b/gooddata-api-client/docs/JsonApiMetricIn.md
new file mode 100644
index 000000000..4f99c9126
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricIn.md
@@ -0,0 +1,15 @@
+# JsonApiMetricIn
+
+JSON:API representation of metric entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiMetricInAttributes**](JsonApiMetricInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "metric"
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiMetricInAttributes.md b/gooddata-api-client/docs/JsonApiMetricInAttributes.md
new file mode 100644
index 000000000..baed0eb2d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricInAttributes.md
@@ -0,0 +1,16 @@
+# JsonApiMetricInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | [**JsonApiMetricInAttributesContent**](JsonApiMetricInAttributesContent.md) | |
+**are_relations_valid** | **bool** | | [optional]
+**description** | **str** | | [optional]
+**tags** | **[str]** | | [optional]
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiMetricInAttributesContent.md b/gooddata-api-client/docs/JsonApiMetricInAttributesContent.md
new file mode 100644
index 000000000..2f967be5f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricInAttributesContent.md
@@ -0,0 +1,13 @@
+# JsonApiMetricInAttributesContent
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**maql** | **str** | |
+**format** | **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/JsonApiMetricInDocument.md b/gooddata-api-client/docs/JsonApiMetricInDocument.md
new file mode 100644
index 000000000..5fc892cc9
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiMetricInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiMetricIn**](JsonApiMetricIn.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/JsonApiMetricLinkage.md b/gooddata-api-client/docs/JsonApiMetricLinkage.md
new file mode 100644
index 000000000..c9c03fc47
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiMetricLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "metric"
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiMetricOut.md b/gooddata-api-client/docs/JsonApiMetricOut.md
new file mode 100644
index 000000000..8201e6c87
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricOut.md
@@ -0,0 +1,16 @@
+# JsonApiMetricOut
+
+JSON:API representation of metric entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiMetricInAttributes**](JsonApiMetricInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "metric"
+**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.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/JsonApiMetricOutDocument.md b/gooddata-api-client/docs/JsonApiMetricOutDocument.md
new file mode 100644
index 000000000..85d95f58b
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiMetricOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiMetricOut**](JsonApiMetricOut.md) | |
+**included** | [**[JsonApiMetricOutIncludes]**](JsonApiMetricOutIncludes.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]
+
+[[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/JsonApiMetricOutIncludes.md b/gooddata-api-client/docs/JsonApiMetricOutIncludes.md
new file mode 100644
index 000000000..069ac3966
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricOutIncludes.md
@@ -0,0 +1,16 @@
+# JsonApiMetricOutIncludes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**relationships** | [**JsonApiDatasetOutRelationships**](JsonApiDatasetOutRelationships.md) | | [optional]
+**links** | [**ObjectLinks**](ObjectLinks.md) | | [optional]
+**attributes** | [**JsonApiDatasetOutAttributes**](JsonApiDatasetOutAttributes.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 "dataset"
+**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/JsonApiMetricOutList.md b/gooddata-api-client/docs/JsonApiMetricOutList.md
new file mode 100644
index 000000000..24436cf3d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricOutList.md
@@ -0,0 +1,15 @@
+# JsonApiMetricOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiMetricOutWithLinks]**](JsonApiMetricOutWithLinks.md) | |
+**included** | [**[JsonApiMetricOutIncludes]**](JsonApiMetricOutIncludes.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiMetricOutRelationships.md b/gooddata-api-client/docs/JsonApiMetricOutRelationships.md
new file mode 100644
index 000000000..92e097d32
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricOutRelationships.md
@@ -0,0 +1,16 @@
+# JsonApiMetricOutRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiDatasetOutRelationshipsAttributes**](JsonApiDatasetOutRelationshipsAttributes.md) | | [optional]
+**datasets** | [**JsonApiAnalyticalDashboardOutRelationshipsDatasets**](JsonApiAnalyticalDashboardOutRelationshipsDatasets.md) | | [optional]
+**facts** | [**JsonApiDatasetOutRelationshipsFacts**](JsonApiDatasetOutRelationshipsFacts.md) | | [optional]
+**labels** | [**JsonApiAnalyticalDashboardOutRelationshipsLabels**](JsonApiAnalyticalDashboardOutRelationshipsLabels.md) | | [optional]
+**metrics** | [**JsonApiAnalyticalDashboardOutRelationshipsMetrics**](JsonApiAnalyticalDashboardOutRelationshipsMetrics.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/JsonApiMetricOutWithLinks.md b/gooddata-api-client/docs/JsonApiMetricOutWithLinks.md
new file mode 100644
index 000000000..61805ba3f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiMetricOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiMetricInAttributes**](JsonApiMetricInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "metric"
+**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.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/JsonApiMetricPatch.md b/gooddata-api-client/docs/JsonApiMetricPatch.md
new file mode 100644
index 000000000..3ca89ffec
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricPatch.md
@@ -0,0 +1,15 @@
+# JsonApiMetricPatch
+
+JSON:API representation of patching metric entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiMetricPatchAttributes**](JsonApiMetricPatchAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "metric"
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiMetricPatchAttributes.md b/gooddata-api-client/docs/JsonApiMetricPatchAttributes.md
new file mode 100644
index 000000000..0f771c225
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricPatchAttributes.md
@@ -0,0 +1,16 @@
+# JsonApiMetricPatchAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**are_relations_valid** | **bool** | | [optional]
+**content** | [**JsonApiMetricInAttributesContent**](JsonApiMetricInAttributesContent.md) | | [optional]
+**description** | **str** | | [optional]
+**tags** | **[str]** | | [optional]
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiMetricPatchDocument.md b/gooddata-api-client/docs/JsonApiMetricPatchDocument.md
new file mode 100644
index 000000000..893cb8fbd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiMetricPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiMetricPatch**](JsonApiMetricPatch.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/JsonApiMetricToManyLinkage.md b/gooddata-api-client/docs/JsonApiMetricToManyLinkage.md
new file mode 100644
index 000000000..82af64e9b
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiMetricToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiMetricToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiMetricLinkage]**](JsonApiMetricLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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
new file mode 100644
index 000000000..69e48d876
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationIn.md
@@ -0,0 +1,15 @@
+# JsonApiOrganizationIn
+
+JSON:API representation of organization entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "organization"
+**attributes** | [**JsonApiOrganizationInAttributes**](JsonApiOrganizationInAttributes.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/JsonApiOrganizationInAttributes.md b/gooddata-api-client/docs/JsonApiOrganizationInAttributes.md
new file mode 100644
index 000000000..0ea8dbbcf
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationInAttributes.md
@@ -0,0 +1,19 @@
+# JsonApiOrganizationInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**allowed_origins** | **[str]** | | [optional]
+**early_access** | **str** | | [optional]
+**hostname** | **str** | | [optional]
+**name** | **str** | | [optional]
+**oauth_client_id** | **str** | | [optional]
+**oauth_client_secret** | **str** | | [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** | | [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/JsonApiOrganizationInDocument.md b/gooddata-api-client/docs/JsonApiOrganizationInDocument.md
new file mode 100644
index 000000000..29c61fbf0
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiOrganizationInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiOrganizationIn**](JsonApiOrganizationIn.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/JsonApiOrganizationOut.md b/gooddata-api-client/docs/JsonApiOrganizationOut.md
new file mode 100644
index 000000000..70162f0f6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationOut.md
@@ -0,0 +1,17 @@
+# JsonApiOrganizationOut
+
+JSON:API representation of organization entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "organization"
+**attributes** | [**JsonApiOrganizationOutAttributes**](JsonApiOrganizationOutAttributes.md) | | [optional]
+**meta** | [**JsonApiOrganizationOutMeta**](JsonApiOrganizationOutMeta.md) | | [optional]
+**relationships** | [**JsonApiOrganizationOutRelationships**](JsonApiOrganizationOutRelationships.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/JsonApiOrganizationOutAttributes.md b/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md
new file mode 100644
index 000000000..aa39dc6e2
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md
@@ -0,0 +1,18 @@
+# JsonApiOrganizationOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**allowed_origins** | **[str]** | | [optional]
+**early_access** | **str** | | [optional]
+**hostname** | **str** | | [optional]
+**name** | **str** | | [optional]
+**oauth_client_id** | **str** | | [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** | | [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/JsonApiOrganizationOutDocument.md b/gooddata-api-client/docs/JsonApiOrganizationOutDocument.md
new file mode 100644
index 000000000..a37fd7f87
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiOrganizationOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiOrganizationOut**](JsonApiOrganizationOut.md) | |
+**included** | [**[JsonApiOrganizationOutIncludes]**](JsonApiOrganizationOutIncludes.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]
+
+[[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
new file mode 100644
index 000000000..8e6dd6b0c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationOutIncludes.md
@@ -0,0 +1,16 @@
+# JsonApiOrganizationOutIncludes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiUserInAttributes**](JsonApiUserInAttributes.md) | | [optional]
+**relationships** | [**JsonApiUserGroupInRelationships**](JsonApiUserGroupInRelationships.md) | | [optional]
+**links** | [**ObjectLinks**](ObjectLinks.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"
+**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/JsonApiOrganizationOutMeta.md b/gooddata-api-client/docs/JsonApiOrganizationOutMeta.md
new file mode 100644
index 000000000..1f72c707d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationOutMeta.md
@@ -0,0 +1,12 @@
+# JsonApiOrganizationOutMeta
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**permissions** | **[str]** | List of valid permissions for a logged user. | [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/JsonApiOrganizationOutRelationships.md b/gooddata-api-client/docs/JsonApiOrganizationOutRelationships.md
new file mode 100644
index 000000000..f9bbc3ca1
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationOutRelationships.md
@@ -0,0 +1,13 @@
+# JsonApiOrganizationOutRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bootstrap_user** | [**JsonApiOrganizationOutRelationshipsBootstrapUser**](JsonApiOrganizationOutRelationshipsBootstrapUser.md) | | [optional]
+**bootstrap_user_group** | [**JsonApiOrganizationOutRelationshipsBootstrapUserGroup**](JsonApiOrganizationOutRelationshipsBootstrapUserGroup.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/JsonApiOrganizationOutRelationshipsBootstrapUser.md b/gooddata-api-client/docs/JsonApiOrganizationOutRelationshipsBootstrapUser.md
new file mode 100644
index 000000000..06ef9a8d5
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationOutRelationshipsBootstrapUser.md
@@ -0,0 +1,12 @@
+# JsonApiOrganizationOutRelationshipsBootstrapUser
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserToOneLinkage**](JsonApiUserToOneLinkage.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/JsonApiOrganizationOutRelationshipsBootstrapUserGroup.md b/gooddata-api-client/docs/JsonApiOrganizationOutRelationshipsBootstrapUserGroup.md
new file mode 100644
index 000000000..8855a203b
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationOutRelationshipsBootstrapUserGroup.md
@@ -0,0 +1,12 @@
+# JsonApiOrganizationOutRelationshipsBootstrapUserGroup
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserGroupToOneLinkage**](JsonApiUserGroupToOneLinkage.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/JsonApiOrganizationPatch.md b/gooddata-api-client/docs/JsonApiOrganizationPatch.md
new file mode 100644
index 000000000..8d58832db
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationPatch.md
@@ -0,0 +1,15 @@
+# JsonApiOrganizationPatch
+
+JSON:API representation of patching organization entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "organization"
+**attributes** | [**JsonApiOrganizationInAttributes**](JsonApiOrganizationInAttributes.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/JsonApiOrganizationPatchDocument.md b/gooddata-api-client/docs/JsonApiOrganizationPatchDocument.md
new file mode 100644
index 000000000..9b76a7db5
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiOrganizationPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiOrganizationPatch**](JsonApiOrganizationPatch.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/JsonApiOrganizationSettingIn.md b/gooddata-api-client/docs/JsonApiOrganizationSettingIn.md
new file mode 100644
index 000000000..6d45f8a5b
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationSettingIn.md
@@ -0,0 +1,15 @@
+# JsonApiOrganizationSettingIn
+
+JSON:API representation of organizationSetting entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "organizationSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiOrganizationSettingInAttributes.md b/gooddata-api-client/docs/JsonApiOrganizationSettingInAttributes.md
new file mode 100644
index 000000000..c42ff79e2
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationSettingInAttributes.md
@@ -0,0 +1,12 @@
+# JsonApiOrganizationSettingInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**content** | **{str: (bool, date, datetime, dict, float, int, list, 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/JsonApiOrganizationSettingInDocument.md b/gooddata-api-client/docs/JsonApiOrganizationSettingInDocument.md
new file mode 100644
index 000000000..06e974ff0
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationSettingInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiOrganizationSettingInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiOrganizationSettingIn**](JsonApiOrganizationSettingIn.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/JsonApiOrganizationSettingOut.md b/gooddata-api-client/docs/JsonApiOrganizationSettingOut.md
new file mode 100644
index 000000000..d0493d859
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationSettingOut.md
@@ -0,0 +1,15 @@
+# JsonApiOrganizationSettingOut
+
+JSON:API representation of organizationSetting entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "organizationSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiOrganizationSettingOutDocument.md b/gooddata-api-client/docs/JsonApiOrganizationSettingOutDocument.md
new file mode 100644
index 000000000..90c9e3026
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationSettingOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiOrganizationSettingOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiOrganizationSettingOut**](JsonApiOrganizationSettingOut.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/JsonApiOrganizationSettingOutList.md b/gooddata-api-client/docs/JsonApiOrganizationSettingOutList.md
new file mode 100644
index 000000000..9b542385f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationSettingOutList.md
@@ -0,0 +1,14 @@
+# JsonApiOrganizationSettingOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiOrganizationSettingOutWithLinks]**](JsonApiOrganizationSettingOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiOrganizationSettingOutWithLinks.md b/gooddata-api-client/docs/JsonApiOrganizationSettingOutWithLinks.md
new file mode 100644
index 000000000..d2ba2f3fe
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationSettingOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiOrganizationSettingOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "organizationSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiOrganizationSettingPatch.md b/gooddata-api-client/docs/JsonApiOrganizationSettingPatch.md
new file mode 100644
index 000000000..18b0eba2f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationSettingPatch.md
@@ -0,0 +1,15 @@
+# JsonApiOrganizationSettingPatch
+
+JSON:API representation of patching organizationSetting entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "organizationSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiOrganizationSettingPatchDocument.md b/gooddata-api-client/docs/JsonApiOrganizationSettingPatchDocument.md
new file mode 100644
index 000000000..8c120f31a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiOrganizationSettingPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiOrganizationSettingPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiOrganizationSettingPatch**](JsonApiOrganizationSettingPatch.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/JsonApiThemeIn.md b/gooddata-api-client/docs/JsonApiThemeIn.md
new file mode 100644
index 000000000..31cd70cc6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiThemeIn.md
@@ -0,0 +1,15 @@
+# JsonApiThemeIn
+
+JSON:API representation of theme entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiColorPaletteInAttributes**](JsonApiColorPaletteInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "theme"
+**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/JsonApiThemeInDocument.md b/gooddata-api-client/docs/JsonApiThemeInDocument.md
new file mode 100644
index 000000000..9e2395a65
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiThemeInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiThemeInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiThemeIn**](JsonApiThemeIn.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/JsonApiThemeOut.md b/gooddata-api-client/docs/JsonApiThemeOut.md
new file mode 100644
index 000000000..c240339ab
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiThemeOut.md
@@ -0,0 +1,15 @@
+# JsonApiThemeOut
+
+JSON:API representation of theme entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiColorPaletteInAttributes**](JsonApiColorPaletteInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "theme"
+**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/JsonApiThemeOutDocument.md b/gooddata-api-client/docs/JsonApiThemeOutDocument.md
new file mode 100644
index 000000000..4f5c178df
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiThemeOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiThemeOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiThemeOut**](JsonApiThemeOut.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/JsonApiThemeOutList.md b/gooddata-api-client/docs/JsonApiThemeOutList.md
new file mode 100644
index 000000000..b074f35e2
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiThemeOutList.md
@@ -0,0 +1,14 @@
+# JsonApiThemeOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiThemeOutWithLinks]**](JsonApiThemeOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiThemeOutWithLinks.md b/gooddata-api-client/docs/JsonApiThemeOutWithLinks.md
new file mode 100644
index 000000000..0181293e0
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiThemeOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiThemeOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiColorPaletteInAttributes**](JsonApiColorPaletteInAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "theme"
+**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/JsonApiThemePatch.md b/gooddata-api-client/docs/JsonApiThemePatch.md
new file mode 100644
index 000000000..ccfbce3a3
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiThemePatch.md
@@ -0,0 +1,15 @@
+# JsonApiThemePatch
+
+JSON:API representation of patching theme entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributes** | [**JsonApiColorPalettePatchAttributes**](JsonApiColorPalettePatchAttributes.md) | |
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "theme"
+**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/JsonApiThemePatchDocument.md b/gooddata-api-client/docs/JsonApiThemePatchDocument.md
new file mode 100644
index 000000000..14352fd8f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiThemePatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiThemePatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiThemePatch**](JsonApiThemePatch.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/JsonApiUserGroupIn.md b/gooddata-api-client/docs/JsonApiUserGroupIn.md
new file mode 100644
index 000000000..d0368e90b
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupIn.md
@@ -0,0 +1,15 @@
+# JsonApiUserGroupIn
+
+JSON:API representation of userGroup entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "userGroup"
+**relationships** | [**JsonApiUserGroupInRelationships**](JsonApiUserGroupInRelationships.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/JsonApiUserGroupInDocument.md b/gooddata-api-client/docs/JsonApiUserGroupInDocument.md
new file mode 100644
index 000000000..3b2d3c722
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiUserGroupInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserGroupIn**](JsonApiUserGroupIn.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/JsonApiUserGroupInRelationships.md b/gooddata-api-client/docs/JsonApiUserGroupInRelationships.md
new file mode 100644
index 000000000..36443afbf
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupInRelationships.md
@@ -0,0 +1,12 @@
+# JsonApiUserGroupInRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**parents** | [**JsonApiUserGroupInRelationshipsParents**](JsonApiUserGroupInRelationshipsParents.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/JsonApiUserGroupInRelationshipsParents.md b/gooddata-api-client/docs/JsonApiUserGroupInRelationshipsParents.md
new file mode 100644
index 000000000..c2eb56df2
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupInRelationshipsParents.md
@@ -0,0 +1,12 @@
+# JsonApiUserGroupInRelationshipsParents
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserGroupToManyLinkage**](JsonApiUserGroupToManyLinkage.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/JsonApiUserGroupLinkage.md b/gooddata-api-client/docs/JsonApiUserGroupLinkage.md
new file mode 100644
index 000000000..9eceb7a82
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiUserGroupLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "userGroup"
+**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/JsonApiUserGroupOut.md b/gooddata-api-client/docs/JsonApiUserGroupOut.md
new file mode 100644
index 000000000..5de5f5fe6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupOut.md
@@ -0,0 +1,15 @@
+# JsonApiUserGroupOut
+
+JSON:API representation of userGroup entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "userGroup"
+**relationships** | [**JsonApiUserGroupInRelationships**](JsonApiUserGroupInRelationships.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/JsonApiUserGroupOutDocument.md b/gooddata-api-client/docs/JsonApiUserGroupOutDocument.md
new file mode 100644
index 000000000..518e9512d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiUserGroupOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserGroupOut**](JsonApiUserGroupOut.md) | |
+**included** | [**[JsonApiUserGroupOutWithLinks]**](JsonApiUserGroupOutWithLinks.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]
+
+[[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/JsonApiUserGroupOutList.md b/gooddata-api-client/docs/JsonApiUserGroupOutList.md
new file mode 100644
index 000000000..a9e514a14
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupOutList.md
@@ -0,0 +1,15 @@
+# JsonApiUserGroupOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiUserGroupOutWithLinks]**](JsonApiUserGroupOutWithLinks.md) | |
+**included** | [**[JsonApiUserGroupOutWithLinks]**](JsonApiUserGroupOutWithLinks.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiUserGroupOutWithLinks.md b/gooddata-api-client/docs/JsonApiUserGroupOutWithLinks.md
new file mode 100644
index 000000000..f93c609d1
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiUserGroupOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "userGroup"
+**relationships** | [**JsonApiUserGroupInRelationships**](JsonApiUserGroupInRelationships.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/JsonApiUserGroupPatch.md b/gooddata-api-client/docs/JsonApiUserGroupPatch.md
new file mode 100644
index 000000000..7426865b1
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupPatch.md
@@ -0,0 +1,15 @@
+# JsonApiUserGroupPatch
+
+JSON:API representation of patching userGroup entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "userGroup"
+**relationships** | [**JsonApiUserGroupInRelationships**](JsonApiUserGroupInRelationships.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/JsonApiUserGroupPatchDocument.md b/gooddata-api-client/docs/JsonApiUserGroupPatchDocument.md
new file mode 100644
index 000000000..3bb540156
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiUserGroupPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserGroupPatch**](JsonApiUserGroupPatch.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/JsonApiUserGroupToManyLinkage.md b/gooddata-api-client/docs/JsonApiUserGroupToManyLinkage.md
new file mode 100644
index 000000000..a6f455569
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiUserGroupToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiUserGroupLinkage]**](JsonApiUserGroupLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiUserGroupToOneLinkage.md b/gooddata-api-client/docs/JsonApiUserGroupToOneLinkage.md
new file mode 100644
index 000000000..2853e1d8e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserGroupToOneLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiUserGroupToOneLinkage
+
+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 "userGroup"
+**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/JsonApiUserIn.md b/gooddata-api-client/docs/JsonApiUserIn.md
new file mode 100644
index 000000000..77be251bf
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserIn.md
@@ -0,0 +1,16 @@
+# JsonApiUserIn
+
+JSON:API representation of user entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "user"
+**attributes** | [**JsonApiUserInAttributes**](JsonApiUserInAttributes.md) | | [optional]
+**relationships** | [**JsonApiUserInRelationships**](JsonApiUserInRelationships.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/JsonApiUserInAttributes.md b/gooddata-api-client/docs/JsonApiUserInAttributes.md
new file mode 100644
index 000000000..6fb83e5ec
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserInAttributes.md
@@ -0,0 +1,12 @@
+# JsonApiUserInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**authentication_id** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiUserInDocument.md b/gooddata-api-client/docs/JsonApiUserInDocument.md
new file mode 100644
index 000000000..c86097568
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiUserInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserIn**](JsonApiUserIn.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/JsonApiUserInRelationships.md b/gooddata-api-client/docs/JsonApiUserInRelationships.md
new file mode 100644
index 000000000..95f4260f8
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserInRelationships.md
@@ -0,0 +1,12 @@
+# JsonApiUserInRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**user_groups** | [**JsonApiUserGroupInRelationshipsParents**](JsonApiUserGroupInRelationshipsParents.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/JsonApiUserLinkage.md b/gooddata-api-client/docs/JsonApiUserLinkage.md
new file mode 100644
index 000000000..c47b16b12
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiUserLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "user"
+**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/JsonApiUserOut.md b/gooddata-api-client/docs/JsonApiUserOut.md
new file mode 100644
index 000000000..019363982
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserOut.md
@@ -0,0 +1,16 @@
+# JsonApiUserOut
+
+JSON:API representation of user entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "user"
+**attributes** | [**JsonApiUserInAttributes**](JsonApiUserInAttributes.md) | | [optional]
+**relationships** | [**JsonApiUserInRelationships**](JsonApiUserInRelationships.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/JsonApiUserOutDocument.md b/gooddata-api-client/docs/JsonApiUserOutDocument.md
new file mode 100644
index 000000000..06fb1020a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiUserOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserOut**](JsonApiUserOut.md) | |
+**included** | [**[JsonApiUserGroupOutWithLinks]**](JsonApiUserGroupOutWithLinks.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]
+
+[[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/JsonApiUserOutList.md b/gooddata-api-client/docs/JsonApiUserOutList.md
new file mode 100644
index 000000000..6b18b240e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserOutList.md
@@ -0,0 +1,15 @@
+# JsonApiUserOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiUserOutWithLinks]**](JsonApiUserOutWithLinks.md) | |
+**included** | [**[JsonApiUserGroupOutWithLinks]**](JsonApiUserGroupOutWithLinks.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiUserOutWithLinks.md b/gooddata-api-client/docs/JsonApiUserOutWithLinks.md
new file mode 100644
index 000000000..54321189d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiUserOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "user"
+**attributes** | [**JsonApiUserInAttributes**](JsonApiUserInAttributes.md) | | [optional]
+**relationships** | [**JsonApiUserInRelationships**](JsonApiUserInRelationships.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/JsonApiUserPatch.md b/gooddata-api-client/docs/JsonApiUserPatch.md
new file mode 100644
index 000000000..ab5e8c250
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserPatch.md
@@ -0,0 +1,16 @@
+# JsonApiUserPatch
+
+JSON:API representation of patching user entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "user"
+**attributes** | [**JsonApiUserInAttributes**](JsonApiUserInAttributes.md) | | [optional]
+**relationships** | [**JsonApiUserInRelationships**](JsonApiUserInRelationships.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/JsonApiUserPatchDocument.md b/gooddata-api-client/docs/JsonApiUserPatchDocument.md
new file mode 100644
index 000000000..eb6096f8f
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiUserPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserPatch**](JsonApiUserPatch.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/JsonApiUserSettingIn.md b/gooddata-api-client/docs/JsonApiUserSettingIn.md
new file mode 100644
index 000000000..1fe5520e6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserSettingIn.md
@@ -0,0 +1,15 @@
+# JsonApiUserSettingIn
+
+JSON:API representation of userSetting entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "userSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiUserSettingInDocument.md b/gooddata-api-client/docs/JsonApiUserSettingInDocument.md
new file mode 100644
index 000000000..2da793711
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserSettingInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiUserSettingInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserSettingIn**](JsonApiUserSettingIn.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/JsonApiUserSettingOut.md b/gooddata-api-client/docs/JsonApiUserSettingOut.md
new file mode 100644
index 000000000..cfe7b3dd9
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserSettingOut.md
@@ -0,0 +1,15 @@
+# JsonApiUserSettingOut
+
+JSON:API representation of userSetting entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "userSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiUserSettingOutDocument.md b/gooddata-api-client/docs/JsonApiUserSettingOutDocument.md
new file mode 100644
index 000000000..7268bf83c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserSettingOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiUserSettingOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiUserSettingOut**](JsonApiUserSettingOut.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/JsonApiUserSettingOutList.md b/gooddata-api-client/docs/JsonApiUserSettingOutList.md
new file mode 100644
index 000000000..128a4c72d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserSettingOutList.md
@@ -0,0 +1,14 @@
+# JsonApiUserSettingOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiUserSettingOutWithLinks]**](JsonApiUserSettingOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiUserSettingOutWithLinks.md b/gooddata-api-client/docs/JsonApiUserSettingOutWithLinks.md
new file mode 100644
index 000000000..3c893dd2a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserSettingOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiUserSettingOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "userSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiUserToOneLinkage.md b/gooddata-api-client/docs/JsonApiUserToOneLinkage.md
new file mode 100644
index 000000000..23b23c0c8
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiUserToOneLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiUserToOneLinkage
+
+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 "user"
+**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/JsonApiVisualizationObjectIn.md b/gooddata-api-client/docs/JsonApiVisualizationObjectIn.md
new file mode 100644
index 000000000..cfa8ab661
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectIn.md
@@ -0,0 +1,15 @@
+# JsonApiVisualizationObjectIn
+
+JSON:API representation of visualizationObject entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "visualizationObject"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.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/JsonApiVisualizationObjectInDocument.md b/gooddata-api-client/docs/JsonApiVisualizationObjectInDocument.md
new file mode 100644
index 000000000..079bccb45
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiVisualizationObjectInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiVisualizationObjectIn**](JsonApiVisualizationObjectIn.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/JsonApiVisualizationObjectLinkage.md b/gooddata-api-client/docs/JsonApiVisualizationObjectLinkage.md
new file mode 100644
index 000000000..c18925cb9
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiVisualizationObjectLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "visualizationObject"
+**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/JsonApiVisualizationObjectOut.md b/gooddata-api-client/docs/JsonApiVisualizationObjectOut.md
new file mode 100644
index 000000000..170722e8e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectOut.md
@@ -0,0 +1,16 @@
+# JsonApiVisualizationObjectOut
+
+JSON:API representation of visualizationObject entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "visualizationObject"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.md) | | [optional]
+**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.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/JsonApiVisualizationObjectOutDocument.md b/gooddata-api-client/docs/JsonApiVisualizationObjectOutDocument.md
new file mode 100644
index 000000000..72ed05614
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiVisualizationObjectOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiVisualizationObjectOut**](JsonApiVisualizationObjectOut.md) | |
+**included** | [**[JsonApiMetricOutIncludes]**](JsonApiMetricOutIncludes.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]
+
+[[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/JsonApiVisualizationObjectOutList.md b/gooddata-api-client/docs/JsonApiVisualizationObjectOutList.md
new file mode 100644
index 000000000..f74f1b372
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectOutList.md
@@ -0,0 +1,15 @@
+# JsonApiVisualizationObjectOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiVisualizationObjectOutWithLinks]**](JsonApiVisualizationObjectOutWithLinks.md) | |
+**included** | [**[JsonApiMetricOutIncludes]**](JsonApiMetricOutIncludes.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiVisualizationObjectOutWithLinks.md b/gooddata-api-client/docs/JsonApiVisualizationObjectOutWithLinks.md
new file mode 100644
index 000000000..1e3b49430
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiVisualizationObjectOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "visualizationObject"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.md) | | [optional]
+**relationships** | [**JsonApiMetricOutRelationships**](JsonApiMetricOutRelationships.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/JsonApiVisualizationObjectPatch.md b/gooddata-api-client/docs/JsonApiVisualizationObjectPatch.md
new file mode 100644
index 000000000..647bc657a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectPatch.md
@@ -0,0 +1,15 @@
+# JsonApiVisualizationObjectPatch
+
+JSON:API representation of patching visualizationObject entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "visualizationObject"
+**attributes** | [**JsonApiAnalyticalDashboardInAttributes**](JsonApiAnalyticalDashboardInAttributes.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/JsonApiVisualizationObjectPatchDocument.md b/gooddata-api-client/docs/JsonApiVisualizationObjectPatchDocument.md
new file mode 100644
index 000000000..c68338acd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiVisualizationObjectPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiVisualizationObjectPatch**](JsonApiVisualizationObjectPatch.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/JsonApiVisualizationObjectToManyLinkage.md b/gooddata-api-client/docs/JsonApiVisualizationObjectToManyLinkage.md
new file mode 100644
index 000000000..719e48f51
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiVisualizationObjectToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiVisualizationObjectToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiVisualizationObjectLinkage]**](JsonApiVisualizationObjectLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiWorkspaceDataFilterIn.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterIn.md
new file mode 100644
index 000000000..4eecfc869
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterIn.md
@@ -0,0 +1,16 @@
+# JsonApiWorkspaceDataFilterIn
+
+JSON:API representation of workspaceDataFilter entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceDataFilter"
+**attributes** | [**JsonApiWorkspaceDataFilterInAttributes**](JsonApiWorkspaceDataFilterInAttributes.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceDataFilterInRelationships**](JsonApiWorkspaceDataFilterInRelationships.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/JsonApiWorkspaceDataFilterInAttributes.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterInAttributes.md
new file mode 100644
index 000000000..367c947c2
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterInAttributes.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceDataFilterInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**column_name** | **str** | | [optional]
+**description** | **str** | | [optional]
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiWorkspaceDataFilterInDocument.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterInDocument.md
new file mode 100644
index 000000000..4e1a00ef0
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceDataFilterInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceDataFilterIn**](JsonApiWorkspaceDataFilterIn.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/JsonApiWorkspaceDataFilterInRelationships.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterInRelationships.md
new file mode 100644
index 000000000..a3595ee15
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterInRelationships.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceDataFilterInRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**filter_settings** | [**JsonApiWorkspaceDataFilterInRelationshipsFilterSettings**](JsonApiWorkspaceDataFilterInRelationshipsFilterSettings.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/JsonApiWorkspaceDataFilterInRelationshipsFilterSettings.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterInRelationshipsFilterSettings.md
new file mode 100644
index 000000000..9e2e2b071
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterInRelationshipsFilterSettings.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceDataFilterInRelationshipsFilterSettings
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceDataFilterSettingToManyLinkage**](JsonApiWorkspaceDataFilterSettingToManyLinkage.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/JsonApiWorkspaceDataFilterLinkage.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterLinkage.md
new file mode 100644
index 000000000..612f5bf20
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceDataFilterLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "workspaceDataFilter"
+**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/JsonApiWorkspaceDataFilterOut.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterOut.md
new file mode 100644
index 000000000..4c640e7d1
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterOut.md
@@ -0,0 +1,16 @@
+# JsonApiWorkspaceDataFilterOut
+
+JSON:API representation of workspaceDataFilter entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceDataFilter"
+**attributes** | [**JsonApiWorkspaceDataFilterInAttributes**](JsonApiWorkspaceDataFilterInAttributes.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceDataFilterInRelationships**](JsonApiWorkspaceDataFilterInRelationships.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/JsonApiWorkspaceDataFilterOutDocument.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterOutDocument.md
new file mode 100644
index 000000000..a5fe9fb3d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceDataFilterOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceDataFilterOut**](JsonApiWorkspaceDataFilterOut.md) | |
+**included** | [**[JsonApiWorkspaceDataFilterSettingOutWithLinks]**](JsonApiWorkspaceDataFilterSettingOutWithLinks.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]
+
+[[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/JsonApiWorkspaceDataFilterOutList.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterOutList.md
new file mode 100644
index 000000000..8bff1148d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterOutList.md
@@ -0,0 +1,15 @@
+# JsonApiWorkspaceDataFilterOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiWorkspaceDataFilterOutWithLinks]**](JsonApiWorkspaceDataFilterOutWithLinks.md) | |
+**included** | [**[JsonApiWorkspaceDataFilterSettingOutWithLinks]**](JsonApiWorkspaceDataFilterSettingOutWithLinks.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiWorkspaceDataFilterOutWithLinks.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterOutWithLinks.md
new file mode 100644
index 000000000..a1704fc4c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiWorkspaceDataFilterOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceDataFilter"
+**attributes** | [**JsonApiWorkspaceDataFilterInAttributes**](JsonApiWorkspaceDataFilterInAttributes.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceDataFilterInRelationships**](JsonApiWorkspaceDataFilterInRelationships.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/JsonApiWorkspaceDataFilterPatch.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterPatch.md
new file mode 100644
index 000000000..527e87de3
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterPatch.md
@@ -0,0 +1,16 @@
+# JsonApiWorkspaceDataFilterPatch
+
+JSON:API representation of patching workspaceDataFilter entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceDataFilter"
+**attributes** | [**JsonApiWorkspaceDataFilterInAttributes**](JsonApiWorkspaceDataFilterInAttributes.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceDataFilterInRelationships**](JsonApiWorkspaceDataFilterInRelationships.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/JsonApiWorkspaceDataFilterPatchDocument.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterPatchDocument.md
new file mode 100644
index 000000000..2ac583192
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceDataFilterPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceDataFilterPatch**](JsonApiWorkspaceDataFilterPatch.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/JsonApiWorkspaceDataFilterSettingLinkage.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingLinkage.md
new file mode 100644
index 000000000..1e8c321cc
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceDataFilterSettingLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "workspaceDataFilterSetting"
+**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/JsonApiWorkspaceDataFilterSettingOut.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOut.md
new file mode 100644
index 000000000..b4499df3c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOut.md
@@ -0,0 +1,16 @@
+# JsonApiWorkspaceDataFilterSettingOut
+
+JSON:API representation of workspaceDataFilterSetting entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceDataFilterSetting"
+**attributes** | [**JsonApiWorkspaceDataFilterSettingOutAttributes**](JsonApiWorkspaceDataFilterSettingOutAttributes.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceDataFilterSettingOutRelationships**](JsonApiWorkspaceDataFilterSettingOutRelationships.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/JsonApiWorkspaceDataFilterSettingOutAttributes.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutAttributes.md
new file mode 100644
index 000000000..21ec81e16
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutAttributes.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceDataFilterSettingOutAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**description** | **str** | | [optional]
+**filter_values** | **[str]** | | [optional]
+**title** | **str** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutDocument.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutDocument.md
new file mode 100644
index 000000000..20ee4e082
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceDataFilterSettingOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceDataFilterSettingOut**](JsonApiWorkspaceDataFilterSettingOut.md) | |
+**included** | [**[JsonApiWorkspaceDataFilterOutWithLinks]**](JsonApiWorkspaceDataFilterOutWithLinks.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]
+
+[[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/JsonApiWorkspaceDataFilterSettingOutList.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutList.md
new file mode 100644
index 000000000..cd3814d12
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutList.md
@@ -0,0 +1,15 @@
+# JsonApiWorkspaceDataFilterSettingOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiWorkspaceDataFilterSettingOutWithLinks]**](JsonApiWorkspaceDataFilterSettingOutWithLinks.md) | |
+**included** | [**[JsonApiWorkspaceDataFilterOutWithLinks]**](JsonApiWorkspaceDataFilterOutWithLinks.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiWorkspaceDataFilterSettingOutRelationships.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutRelationships.md
new file mode 100644
index 000000000..66213b095
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutRelationships.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceDataFilterSettingOutRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**workspace_data_filter** | [**JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter**](JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter.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/JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter.md
new file mode 100644
index 000000000..0c4c9e7aa
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceDataFilterToOneLinkage**](JsonApiWorkspaceDataFilterToOneLinkage.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/JsonApiWorkspaceDataFilterSettingOutWithLinks.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutWithLinks.md
new file mode 100644
index 000000000..3394cd261
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingOutWithLinks.md
@@ -0,0 +1,16 @@
+# JsonApiWorkspaceDataFilterSettingOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceDataFilterSetting"
+**attributes** | [**JsonApiWorkspaceDataFilterSettingOutAttributes**](JsonApiWorkspaceDataFilterSettingOutAttributes.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceDataFilterSettingOutRelationships**](JsonApiWorkspaceDataFilterSettingOutRelationships.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/JsonApiWorkspaceDataFilterSettingToManyLinkage.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingToManyLinkage.md
new file mode 100644
index 000000000..d8225cb29
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterSettingToManyLinkage.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceDataFilterSettingToManyLinkage
+
+References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**[JsonApiWorkspaceDataFilterSettingLinkage]**](JsonApiWorkspaceDataFilterSettingLinkage.md) | References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object. |
+
+[[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/JsonApiWorkspaceDataFilterToOneLinkage.md b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterToOneLinkage.md
new file mode 100644
index 000000000..042038b38
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceDataFilterToOneLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceDataFilterToOneLinkage
+
+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 "workspaceDataFilter"
+**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/JsonApiWorkspaceIn.md b/gooddata-api-client/docs/JsonApiWorkspaceIn.md
new file mode 100644
index 000000000..c6df83edd
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceIn.md
@@ -0,0 +1,16 @@
+# JsonApiWorkspaceIn
+
+JSON:API representation of workspace entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspace"
+**attributes** | [**JsonApiWorkspaceInAttributes**](JsonApiWorkspaceInAttributes.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceInRelationships**](JsonApiWorkspaceInRelationships.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/JsonApiWorkspaceInAttributes.md b/gooddata-api-client/docs/JsonApiWorkspaceInAttributes.md
new file mode 100644
index 000000000..05e71e919
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceInAttributes.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceInAttributes
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**description** | **str** | | [optional]
+**early_access** | **str** | | [optional]
+**name** | **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/JsonApiWorkspaceInDocument.md b/gooddata-api-client/docs/JsonApiWorkspaceInDocument.md
new file mode 100644
index 000000000..7a638ea5a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceIn**](JsonApiWorkspaceIn.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/JsonApiWorkspaceInRelationships.md b/gooddata-api-client/docs/JsonApiWorkspaceInRelationships.md
new file mode 100644
index 000000000..dad7b3a16
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceInRelationships.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceInRelationships
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**parent** | [**JsonApiWorkspaceInRelationshipsParent**](JsonApiWorkspaceInRelationshipsParent.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/JsonApiWorkspaceInRelationshipsParent.md b/gooddata-api-client/docs/JsonApiWorkspaceInRelationshipsParent.md
new file mode 100644
index 000000000..09bc8674a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceInRelationshipsParent.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceInRelationshipsParent
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceToOneLinkage**](JsonApiWorkspaceToOneLinkage.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/JsonApiWorkspaceLinkage.md b/gooddata-api-client/docs/JsonApiWorkspaceLinkage.md
new file mode 100644
index 000000000..db29379db
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceLinkage
+
+The \\\"type\\\" and \\\"id\\\" to non-empty members.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | |
+**type** | **str** | | defaults to "workspace"
+**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/JsonApiWorkspaceOut.md b/gooddata-api-client/docs/JsonApiWorkspaceOut.md
new file mode 100644
index 000000000..87b21321d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceOut.md
@@ -0,0 +1,17 @@
+# JsonApiWorkspaceOut
+
+JSON:API representation of workspace entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspace"
+**attributes** | [**JsonApiWorkspaceInAttributes**](JsonApiWorkspaceInAttributes.md) | | [optional]
+**meta** | [**JsonApiWorkspaceOutMeta**](JsonApiWorkspaceOutMeta.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceInRelationships**](JsonApiWorkspaceInRelationships.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/JsonApiWorkspaceOutDocument.md b/gooddata-api-client/docs/JsonApiWorkspaceOutDocument.md
new file mode 100644
index 000000000..6991c9531
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceOutDocument.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceOut**](JsonApiWorkspaceOut.md) | |
+**included** | [**[JsonApiWorkspaceOutWithLinks]**](JsonApiWorkspaceOutWithLinks.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]
+
+[[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/JsonApiWorkspaceOutList.md b/gooddata-api-client/docs/JsonApiWorkspaceOutList.md
new file mode 100644
index 000000000..de9450a2b
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceOutList.md
@@ -0,0 +1,15 @@
+# JsonApiWorkspaceOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiWorkspaceOutWithLinks]**](JsonApiWorkspaceOutWithLinks.md) | |
+**included** | [**[JsonApiWorkspaceOutWithLinks]**](JsonApiWorkspaceOutWithLinks.md) | Included resources | [optional]
+**links** | [**ListLinks**](ListLinks.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/JsonApiWorkspaceOutMeta.md b/gooddata-api-client/docs/JsonApiWorkspaceOutMeta.md
new file mode 100644
index 000000000..f47300d4e
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceOutMeta.md
@@ -0,0 +1,13 @@
+# JsonApiWorkspaceOutMeta
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**config** | [**JsonApiWorkspaceOutMetaConfig**](JsonApiWorkspaceOutMetaConfig.md) | | [optional]
+**permissions** | **[str]** | List of valid permissions for a logged user. | [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/JsonApiWorkspaceOutMetaConfig.md b/gooddata-api-client/docs/JsonApiWorkspaceOutMetaConfig.md
new file mode 100644
index 000000000..e4c37fb1c
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceOutMetaConfig.md
@@ -0,0 +1,13 @@
+# JsonApiWorkspaceOutMetaConfig
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**approximate_count_available** | **bool** | is approximate count enabled - based on type of data-source connected to this workspace | defaults to False
+**data_sampling_available** | **bool** | is sampling enabled - based on type of data-source connected to this workspace | defaults to 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/JsonApiWorkspaceOutWithLinks.md b/gooddata-api-client/docs/JsonApiWorkspaceOutWithLinks.md
new file mode 100644
index 000000000..612ae493a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceOutWithLinks.md
@@ -0,0 +1,17 @@
+# JsonApiWorkspaceOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspace"
+**attributes** | [**JsonApiWorkspaceInAttributes**](JsonApiWorkspaceInAttributes.md) | | [optional]
+**meta** | [**JsonApiWorkspaceOutMeta**](JsonApiWorkspaceOutMeta.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceInRelationships**](JsonApiWorkspaceInRelationships.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/JsonApiWorkspacePatch.md b/gooddata-api-client/docs/JsonApiWorkspacePatch.md
new file mode 100644
index 000000000..1b367daaf
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspacePatch.md
@@ -0,0 +1,16 @@
+# JsonApiWorkspacePatch
+
+JSON:API representation of patching workspace entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspace"
+**attributes** | [**JsonApiWorkspaceInAttributes**](JsonApiWorkspaceInAttributes.md) | | [optional]
+**relationships** | [**JsonApiWorkspaceInRelationships**](JsonApiWorkspaceInRelationships.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/JsonApiWorkspacePatchDocument.md b/gooddata-api-client/docs/JsonApiWorkspacePatchDocument.md
new file mode 100644
index 000000000..e906e3c56
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspacePatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspacePatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspacePatch**](JsonApiWorkspacePatch.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/JsonApiWorkspaceSettingIn.md b/gooddata-api-client/docs/JsonApiWorkspaceSettingIn.md
new file mode 100644
index 000000000..225c4be82
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceSettingIn.md
@@ -0,0 +1,15 @@
+# JsonApiWorkspaceSettingIn
+
+JSON:API representation of workspaceSetting entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiWorkspaceSettingInDocument.md b/gooddata-api-client/docs/JsonApiWorkspaceSettingInDocument.md
new file mode 100644
index 000000000..f6fe1924a
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceSettingInDocument.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceSettingInDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceSettingIn**](JsonApiWorkspaceSettingIn.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/JsonApiWorkspaceSettingOut.md b/gooddata-api-client/docs/JsonApiWorkspaceSettingOut.md
new file mode 100644
index 000000000..00ca18b8d
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceSettingOut.md
@@ -0,0 +1,15 @@
+# JsonApiWorkspaceSettingOut
+
+JSON:API representation of workspaceSetting entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiWorkspaceSettingOutDocument.md b/gooddata-api-client/docs/JsonApiWorkspaceSettingOutDocument.md
new file mode 100644
index 000000000..ae2054538
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceSettingOutDocument.md
@@ -0,0 +1,13 @@
+# JsonApiWorkspaceSettingOutDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceSettingOut**](JsonApiWorkspaceSettingOut.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/JsonApiWorkspaceSettingOutList.md b/gooddata-api-client/docs/JsonApiWorkspaceSettingOutList.md
new file mode 100644
index 000000000..b05a65a26
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceSettingOutList.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceSettingOutList
+
+A JSON:API document with a list of resources
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**[JsonApiWorkspaceSettingOutWithLinks]**](JsonApiWorkspaceSettingOutWithLinks.md) | |
+**links** | [**ListLinks**](ListLinks.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/JsonApiWorkspaceSettingOutWithLinks.md b/gooddata-api-client/docs/JsonApiWorkspaceSettingOutWithLinks.md
new file mode 100644
index 000000000..a43e23717
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceSettingOutWithLinks.md
@@ -0,0 +1,15 @@
+# JsonApiWorkspaceSettingOutWithLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiWorkspaceSettingPatch.md b/gooddata-api-client/docs/JsonApiWorkspaceSettingPatch.md
new file mode 100644
index 000000000..59f213615
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceSettingPatch.md
@@ -0,0 +1,15 @@
+# JsonApiWorkspaceSettingPatch
+
+JSON:API representation of patching workspaceSetting entity.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | API identifier of an object |
+**type** | **str** | Object type | defaults to "workspaceSetting"
+**attributes** | [**JsonApiOrganizationSettingInAttributes**](JsonApiOrganizationSettingInAttributes.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/JsonApiWorkspaceSettingPatchDocument.md b/gooddata-api-client/docs/JsonApiWorkspaceSettingPatchDocument.md
new file mode 100644
index 000000000..cca42c132
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceSettingPatchDocument.md
@@ -0,0 +1,12 @@
+# JsonApiWorkspaceSettingPatchDocument
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**JsonApiWorkspaceSettingPatch**](JsonApiWorkspaceSettingPatch.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/JsonApiWorkspaceToOneLinkage.md b/gooddata-api-client/docs/JsonApiWorkspaceToOneLinkage.md
new file mode 100644
index 000000000..051bb8eb6
--- /dev/null
+++ b/gooddata-api-client/docs/JsonApiWorkspaceToOneLinkage.md
@@ -0,0 +1,14 @@
+# JsonApiWorkspaceToOneLinkage
+
+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 "workspace"
+**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/LabelIdentifier.md b/gooddata-api-client/docs/LabelIdentifier.md
new file mode 100644
index 000000000..e7393aa7a
--- /dev/null
+++ b/gooddata-api-client/docs/LabelIdentifier.md
@@ -0,0 +1,14 @@
+# LabelIdentifier
+
+A label identifier.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Label ID. |
+**type** | **str** | A type of the label. | defaults to "label"
+**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/LayoutApi.md b/gooddata-api-client/docs/LayoutApi.md
new file mode 100644
index 000000000..212b1903c
--- /dev/null
+++ b/gooddata-api-client/docs/LayoutApi.md
@@ -0,0 +1,2572 @@
+# gooddata_api_client.LayoutApi
+
+All URIs are relative to *http://localhost*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_analytics_model**](LayoutApi.md#get_analytics_model) | **GET** /api/v1/layout/workspaces/{workspaceId}/analyticsModel | Get analytics model
+[**get_data_sources_layout**](LayoutApi.md#get_data_sources_layout) | **GET** /api/v1/layout/dataSources | Get all data sources
+[**get_logical_model**](LayoutApi.md#get_logical_model) | **GET** /api/v1/layout/workspaces/{workspaceId}/logicalModel | Get logical model
+[**get_organization_layout**](LayoutApi.md#get_organization_layout) | **GET** /api/v1/layout/organization | Get organization layout
+[**get_pdm_layout**](LayoutApi.md#get_pdm_layout) | **GET** /api/v1/layout/dataSources/{dataSourceId}/physicalModel | Get data source physical model layout
+[**get_user_groups_layout**](LayoutApi.md#get_user_groups_layout) | **GET** /api/v1/layout/userGroups | Get all user groups
+[**get_users_layout**](LayoutApi.md#get_users_layout) | **GET** /api/v1/layout/users | Get all users
+[**get_users_user_groups_layout**](LayoutApi.md#get_users_user_groups_layout) | **GET** /api/v1/layout/usersAndUserGroups | Get all users and user groups
+[**get_workspace_data_filters_layout**](LayoutApi.md#get_workspace_data_filters_layout) | **GET** /api/v1/layout/workspaceDataFilters | Get workspace data filters for all workspaces
+[**get_workspace_layout**](LayoutApi.md#get_workspace_layout) | **GET** /api/v1/layout/workspaces/{workspaceId} | Get workspace layout
+[**get_workspace_permissions**](LayoutApi.md#get_workspace_permissions) | **GET** /api/v1/layout/workspaces/{workspaceId}/permissions | Get permissions for the workspace
+[**get_workspaces_layout**](LayoutApi.md#get_workspaces_layout) | **GET** /api/v1/layout/workspaces | Get all workspaces layout
+[**put_data_sources_layout**](LayoutApi.md#put_data_sources_layout) | **PUT** /api/v1/layout/dataSources | Put all data sources
+[**put_user_groups_layout**](LayoutApi.md#put_user_groups_layout) | **PUT** /api/v1/layout/userGroups | Put all user groups
+[**put_users_layout**](LayoutApi.md#put_users_layout) | **PUT** /api/v1/layout/users | Put all users
+[**put_users_user_groups_layout**](LayoutApi.md#put_users_user_groups_layout) | **PUT** /api/v1/layout/usersAndUserGroups | Put all users and user groups
+[**put_workspace_layout**](LayoutApi.md#put_workspace_layout) | **PUT** /api/v1/layout/workspaces/{workspaceId} | Set workspace layout
+[**set_analytics_model**](LayoutApi.md#set_analytics_model) | **PUT** /api/v1/layout/workspaces/{workspaceId}/analyticsModel | Set analytics model
+[**set_logical_model**](LayoutApi.md#set_logical_model) | **PUT** /api/v1/layout/workspaces/{workspaceId}/logicalModel | Set logical model
+[**set_organization_layout**](LayoutApi.md#set_organization_layout) | **PUT** /api/v1/layout/organization | Set organization layout
+[**set_pdm_layout**](LayoutApi.md#set_pdm_layout) | **PUT** /api/v1/layout/dataSources/{dataSourceId}/physicalModel | Set data source physical model layout
+[**set_workspace_data_filters_layout**](LayoutApi.md#set_workspace_data_filters_layout) | **PUT** /api/v1/layout/workspaceDataFilters | Set all workspace data filters
+[**set_workspace_permissions**](LayoutApi.md#set_workspace_permissions) | **PUT** /api/v1/layout/workspaces/{workspaceId}/permissions | Set permissions for the workspace
+[**set_workspaces_layout**](LayoutApi.md#set_workspaces_layout) | **PUT** /api/v1/layout/workspaces | Set all workspaces layout
+
+
+# **get_analytics_model**
+> DeclarativeAnalytics get_analytics_model(workspace_id)
+
+Get analytics model
+
+Retrieve current analytics model of the workspace.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_analytics import DeclarativeAnalytics
+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 = layout_api.LayoutApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get analytics model
+ api_response = api_instance.get_analytics_model(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_analytics_model: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+
+### Return type
+
+[**DeclarativeAnalytics**](DeclarativeAnalytics.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved current analytics model. | - |
+
+[[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_data_sources_layout**
+> DeclarativeDataSources get_data_sources_layout()
+
+Get all data sources
+
+Retrieve all data sources including related physical model.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_data_sources import DeclarativeDataSources
+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 = layout_api.LayoutApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Get all data sources
+ api_response = api_instance.get_data_sources_layout()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_data_sources_layout: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**DeclarativeDataSources**](DeclarativeDataSources.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved all data sources. | - |
+
+[[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_logical_model**
+> DeclarativeModel get_logical_model(workspace_id)
+
+Get logical model
+
+Retrieve current logical model of the workspace in declarative form.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_model import DeclarativeModel
+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 = layout_api.LayoutApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ include_parents = True # bool | (optional)
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get logical model
+ api_response = api_instance.get_logical_model(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_logical_model: %s\n" % e)
+
+ # example passing only required values which don't have defaults set
+ # and optional values
+ try:
+ # Get logical model
+ api_response = api_instance.get_logical_model(workspace_id, include_parents=include_parents)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_logical_model: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **include_parents** | **bool**| | [optional]
+
+### Return type
+
+[**DeclarativeModel**](DeclarativeModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved current logical model. | - |
+
+[[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_organization_layout**
+> DeclarativeOrganization get_organization_layout()
+
+Get organization layout
+
+Retrieve complete layout of organization, workspaces, user-groups, etc.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_organization import DeclarativeOrganization
+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 = layout_api.LayoutApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Get organization layout
+ api_response = api_instance.get_organization_layout()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_organization_layout: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**DeclarativeOrganization**](DeclarativeOrganization.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved all parts of an organization. | - |
+
+[[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_pdm_layout**
+> DeclarativePdm get_pdm_layout(data_source_id)
+
+Get data source physical model layout
+
+Retrieve complete layout of tables with their columns
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_pdm import DeclarativePdm
+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 = layout_api.LayoutApi(api_client)
+ data_source_id = "dataSourceId_example" # str |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get data source physical model layout
+ api_response = api_instance.get_pdm_layout(data_source_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_pdm_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **data_source_id** | **str**| |
+
+### Return type
+
+[**DeclarativePdm**](DeclarativePdm.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved data source physical mode layout. | - |
+
+[[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_user_groups_layout**
+> DeclarativeUserGroups get_user_groups_layout()
+
+Get all user groups
+
+Retrieve all user-groups eventually with parent group.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_user_groups import DeclarativeUserGroups
+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 = layout_api.LayoutApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Get all user groups
+ api_response = api_instance.get_user_groups_layout()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_user_groups_layout: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**DeclarativeUserGroups**](DeclarativeUserGroups.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved all user groups. | - |
+
+[[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_users_layout**
+> DeclarativeUsers get_users_layout()
+
+Get all users
+
+Retrieve all users including authentication properties.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_users import DeclarativeUsers
+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 = layout_api.LayoutApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Get all users
+ api_response = api_instance.get_users_layout()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_users_layout: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**DeclarativeUsers**](DeclarativeUsers.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved all users. | - |
+
+[[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_users_user_groups_layout**
+> DeclarativeUsersUserGroups get_users_user_groups_layout()
+
+Get all users and user groups
+
+Retrieve all users and user groups with theirs properties.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_users_user_groups import DeclarativeUsersUserGroups
+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 = layout_api.LayoutApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Get all users and user groups
+ api_response = api_instance.get_users_user_groups_layout()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_users_user_groups_layout: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**DeclarativeUsersUserGroups**](DeclarativeUsersUserGroups.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved all users and user groups. | - |
+
+[[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_workspace_data_filters_layout**
+> DeclarativeWorkspaceDataFilters get_workspace_data_filters_layout()
+
+Get workspace data filters for all workspaces
+
+Retrieve all workspaces and related workspace data filters (and their settings / values).
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_workspace_data_filters import DeclarativeWorkspaceDataFilters
+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 = layout_api.LayoutApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Get workspace data filters for all workspaces
+ api_response = api_instance.get_workspace_data_filters_layout()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_workspace_data_filters_layout: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**DeclarativeWorkspaceDataFilters**](DeclarativeWorkspaceDataFilters.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved all workspace data filters. | - |
+
+[[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_workspace_layout**
+> DeclarativeWorkspaceModel get_workspace_layout(workspace_id)
+
+Get workspace layout
+
+Retrieve current model of the workspace in declarative form.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_workspace_model import DeclarativeWorkspaceModel
+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 = layout_api.LayoutApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get workspace layout
+ api_response = api_instance.get_workspace_layout(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_workspace_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+
+### Return type
+
+[**DeclarativeWorkspaceModel**](DeclarativeWorkspaceModel.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved the workspace model. | - |
+
+[[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_workspace_permissions**
+> DeclarativeWorkspacePermissions get_workspace_permissions(workspace_id)
+
+Get permissions for the workspace
+
+Retrieve current set of permissions of the workspace in a declarative form.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_workspace_permissions import DeclarativeWorkspacePermissions
+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 = layout_api.LayoutApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Get permissions for the workspace
+ api_response = api_instance.get_workspace_permissions(workspace_id)
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_workspace_permissions: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+
+### Return type
+
+[**DeclarativeWorkspacePermissions**](DeclarativeWorkspacePermissions.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved current set of permissions. | - |
+
+[[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_workspaces_layout**
+> DeclarativeWorkspaces get_workspaces_layout()
+
+Get all workspaces layout
+
+Gets complete layout of workspaces, their hierarchy, models.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_workspaces import DeclarativeWorkspaces
+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 = layout_api.LayoutApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Get all workspaces layout
+ api_response = api_instance.get_workspaces_layout()
+ pprint(api_response)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->get_workspaces_layout: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**DeclarativeWorkspaces**](DeclarativeWorkspaces.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Retrieved layout of all workspaces. | - |
+
+[[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)
+
+# **put_data_sources_layout**
+> put_data_sources_layout(declarative_data_sources)
+
+Put all data sources
+
+Set all data sources including related physical model.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_data_sources import DeclarativeDataSources
+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 = layout_api.LayoutApi(api_client)
+ declarative_data_sources = DeclarativeDataSources(
+ data_sources=[
+ DeclarativeDataSource(
+ cache_path=[
+ "[ "dfs", "data" ]. Example used in Apache Drill.",
+ ],
+ decoded_parameters=[
+ Parameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ enable_caching=False,
+ id="pg_local_docker-demo",
+ name="postgres demo",
+ parameters=[
+ Parameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ password="*****",
+ pdm=DeclarativeTables(
+ tables=[
+ DeclarativeTable(
+ columns=[
+ DeclarativeColumn(
+ data_type="INT",
+ is_primary_key=True,
+ name="customer_id",
+ referenced_table_column="customer_id",
+ referenced_table_id="customers",
+ ),
+ ],
+ id="customers",
+ name_prefix="out_gooddata",
+ path=["table_schema","table_name"],
+ type="VIEW",
+ ),
+ ],
+ ),
+ permissions=[
+ DeclarativeDataSourcePermission(
+ assignee=AssigneeIdentifier(
+ id="id_example",
+ type="user",
+ ),
+ name="MANAGE",
+ ),
+ ],
+ schema="demo",
+ token="Bigquery service account JSON. Encode it using base64!",
+ type="POSTGRESQL",
+ url="jdbc:postgresql://postgres:5432/gooddata",
+ username="demo",
+ ),
+ ],
+ ) # DeclarativeDataSources |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Put all data sources
+ api_instance.put_data_sources_layout(declarative_data_sources)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->put_data_sources_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **declarative_data_sources** | [**DeclarativeDataSources**](DeclarativeDataSources.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Defined all data sources. | - |
+
+[[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)
+
+# **put_user_groups_layout**
+> put_user_groups_layout(declarative_user_groups)
+
+Put all user groups
+
+Define all user groups with their parents eventually.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_user_groups import DeclarativeUserGroups
+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 = layout_api.LayoutApi(api_client)
+ declarative_user_groups = DeclarativeUserGroups(
+ user_groups=[
+ DeclarativeUserGroup(
+ id="employees.all",
+ parents=[
+ UserGroupIdentifier(
+ id="group.admins",
+ type="userGroup",
+ ),
+ ],
+ ),
+ ],
+ ) # DeclarativeUserGroups |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Put all user groups
+ api_instance.put_user_groups_layout(declarative_user_groups)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->put_user_groups_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **declarative_user_groups** | [**DeclarativeUserGroups**](DeclarativeUserGroups.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Defined all user groups. | - |
+
+[[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)
+
+# **put_users_layout**
+> put_users_layout(declarative_users)
+
+Put all users
+
+Set all users and their authentication properties.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_users import DeclarativeUsers
+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 = layout_api.LayoutApi(api_client)
+ declarative_users = DeclarativeUsers(
+ users=[
+ DeclarativeUser(
+ auth_id="auth_id_example",
+ id="employee123",
+ settings=[
+ DeclarativeSetting(
+ content={},
+ id="timezone",
+ ),
+ ],
+ user_groups=[
+ UserGroupIdentifier(
+ id="group.admins",
+ type="userGroup",
+ ),
+ ],
+ ),
+ ],
+ ) # DeclarativeUsers |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Put all users
+ api_instance.put_users_layout(declarative_users)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->put_users_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **declarative_users** | [**DeclarativeUsers**](DeclarativeUsers.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Defined all users. | - |
+
+[[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)
+
+# **put_users_user_groups_layout**
+> put_users_user_groups_layout(declarative_users_user_groups)
+
+Put all users and user groups
+
+Define all users and user groups with theirs properties.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_users_user_groups import DeclarativeUsersUserGroups
+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 = layout_api.LayoutApi(api_client)
+ declarative_users_user_groups = DeclarativeUsersUserGroups(
+ user_groups=[
+ DeclarativeUserGroup(
+ id="employees.all",
+ parents=[
+ UserGroupIdentifier(
+ id="group.admins",
+ type="userGroup",
+ ),
+ ],
+ ),
+ ],
+ users=[
+ DeclarativeUser(
+ auth_id="auth_id_example",
+ id="employee123",
+ settings=[
+ DeclarativeSetting(
+ content={},
+ id="timezone",
+ ),
+ ],
+ user_groups=[
+ UserGroupIdentifier(
+ id="group.admins",
+ type="userGroup",
+ ),
+ ],
+ ),
+ ],
+ ) # DeclarativeUsersUserGroups |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Put all users and user groups
+ api_instance.put_users_user_groups_layout(declarative_users_user_groups)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->put_users_user_groups_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **declarative_users_user_groups** | [**DeclarativeUsersUserGroups**](DeclarativeUsersUserGroups.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Defined all users and user groups. | - |
+
+[[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)
+
+# **put_workspace_layout**
+> put_workspace_layout(workspace_id, declarative_workspace_model)
+
+Set workspace layout
+
+Set complete layout of workspace, like model, authorization, etc.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_workspace_model import DeclarativeWorkspaceModel
+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 = layout_api.LayoutApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ declarative_workspace_model = DeclarativeWorkspaceModel(
+ analytics=DeclarativeAnalyticsLayer(
+ analytical_dashboards=[
+ DeclarativeAnalyticalDashboard(
+ content={},
+ description="Period to period comparison of revenues in main sectors.",
+ id="revenues-analysis",
+ tags=["Revenues"],
+ title="Revenues analysis",
+ ),
+ ],
+ dashboard_plugins=[
+ DeclarativeDashboardPlugin(
+ content={},
+ description="Three dimensional view of data.",
+ id="dashboard-plugin-1",
+ tags=["Revenues"],
+ title="3D map renderer",
+ ),
+ ],
+ filter_contexts=[
+ DeclarativeFilterContext(
+ content={},
+ description="Filter Context for Sales team.",
+ id="filter-sales",
+ tags=["Revenues"],
+ title="Filter Context for Sales team",
+ ),
+ ],
+ metrics=[
+ DeclarativeMetric(
+ content={},
+ description="Sales for all the data available.",
+ id="total-sales",
+ tags=["Revenues"],
+ title="Total sales",
+ ),
+ ],
+ visualization_objects=[
+ DeclarativeVisualizationObject(
+ content={},
+ description="Simple number for total goods in current production.",
+ id="visualization-1",
+ tags=["Revenues"],
+ title="Count of goods",
+ ),
+ ],
+ ),
+ ldm=DeclarativeLdm(
+ datasets=[
+ DeclarativeDataset(
+ attributes=[
+ DeclarativeAttribute(
+ default_view=LabelIdentifier(
+ id="label_id",
+ type="label",
+ ),
+ description="Customer name including first and last name.",
+ id="attr.customers.customer_name",
+ labels=[
+ DeclarativeLabel(
+ description="Customer name",
+ id="label.customer_name",
+ source_column="customer_name",
+ tags=["Customers"],
+ title="Customer name",
+ value_type="TEXT" | "HYPERLINK" | "GEO",
+ ),
+ ],
+ sort_column="customer_name",
+ sort_direction="ASC" | "DESC",
+ source_column="customer_name",
+ tags=["Customers"],
+ title="Customer Name",
+ ),
+ ],
+ data_source_table_id=DataSourceTableIdentifier(
+ data_source_id="my-postgres",
+ id="customers",
+ type="dataSource",
+ ),
+ description="The customers of ours.",
+ facts=[
+ DeclarativeFact(
+ description="A number of orders created by the customer - including all orders, even the non-delivered ones.",
+ id="fact.customer_order_count",
+ source_column="customer_order_count",
+ tags=["Customers"],
+ title="Customer order count",
+ ),
+ ],
+ grain=[
+ GrainIdentifier(
+ id="attr.customers.customer_name",
+ type="ATTRIBUTE",
+ ),
+ ],
+ id="customers",
+ references=[
+ DeclarativeReference(
+ identifier=ReferenceIdentifier(
+ id="customers",
+ type="DATASET",
+ ),
+ multivalue=False,
+ source_columns=["customer_id"],
+ ),
+ ],
+ tags=["Customers"],
+ title="Customers",
+ ),
+ ],
+ date_instances=[
+ DeclarativeDateDataset(
+ description="A customer order date",
+ granularities=[
+ "MINUTE",
+ ],
+ granularities_formatting=GranularitiesFormatting(
+ title_base="title_base_example",
+ title_pattern="%titleBase - %granularityTitle",
+ ),
+ id="date",
+ tags=["Customer dates"],
+ title="Date",
+ ),
+ ],
+ ),
+ ) # DeclarativeWorkspaceModel |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Set workspace layout
+ api_instance.put_workspace_layout(workspace_id, declarative_workspace_model)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->put_workspace_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **declarative_workspace_model** | [**DeclarativeWorkspaceModel**](DeclarativeWorkspaceModel.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | The model of the workspace was set. | - |
+
+[[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)
+
+# **set_analytics_model**
+> set_analytics_model(workspace_id, declarative_analytics)
+
+Set analytics model
+
+Set effective analytics model of the workspace.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_analytics import DeclarativeAnalytics
+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 = layout_api.LayoutApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ declarative_analytics = DeclarativeAnalytics(
+ analytics=DeclarativeAnalyticsLayer(
+ analytical_dashboards=[
+ DeclarativeAnalyticalDashboard(
+ content={},
+ description="Period to period comparison of revenues in main sectors.",
+ id="revenues-analysis",
+ tags=["Revenues"],
+ title="Revenues analysis",
+ ),
+ ],
+ dashboard_plugins=[
+ DeclarativeDashboardPlugin(
+ content={},
+ description="Three dimensional view of data.",
+ id="dashboard-plugin-1",
+ tags=["Revenues"],
+ title="3D map renderer",
+ ),
+ ],
+ filter_contexts=[
+ DeclarativeFilterContext(
+ content={},
+ description="Filter Context for Sales team.",
+ id="filter-sales",
+ tags=["Revenues"],
+ title="Filter Context for Sales team",
+ ),
+ ],
+ metrics=[
+ DeclarativeMetric(
+ content={},
+ description="Sales for all the data available.",
+ id="total-sales",
+ tags=["Revenues"],
+ title="Total sales",
+ ),
+ ],
+ visualization_objects=[
+ DeclarativeVisualizationObject(
+ content={},
+ description="Simple number for total goods in current production.",
+ id="visualization-1",
+ tags=["Revenues"],
+ title="Count of goods",
+ ),
+ ],
+ ),
+ ) # DeclarativeAnalytics |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Set analytics model
+ api_instance.set_analytics_model(workspace_id, declarative_analytics)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->set_analytics_model: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **declarative_analytics** | [**DeclarativeAnalytics**](DeclarativeAnalytics.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Analytics model successfully set. | - |
+
+[[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)
+
+# **set_logical_model**
+> set_logical_model(workspace_id, declarative_model)
+
+Set logical model
+
+Set effective logical model of the workspace.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_model import DeclarativeModel
+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 = layout_api.LayoutApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ declarative_model = DeclarativeModel(
+ ldm=DeclarativeLdm(
+ datasets=[
+ DeclarativeDataset(
+ attributes=[
+ DeclarativeAttribute(
+ default_view=LabelIdentifier(
+ id="label_id",
+ type="label",
+ ),
+ description="Customer name including first and last name.",
+ id="attr.customers.customer_name",
+ labels=[
+ DeclarativeLabel(
+ description="Customer name",
+ id="label.customer_name",
+ source_column="customer_name",
+ tags=["Customers"],
+ title="Customer name",
+ value_type="TEXT" | "HYPERLINK" | "GEO",
+ ),
+ ],
+ sort_column="customer_name",
+ sort_direction="ASC" | "DESC",
+ source_column="customer_name",
+ tags=["Customers"],
+ title="Customer Name",
+ ),
+ ],
+ data_source_table_id=DataSourceTableIdentifier(
+ data_source_id="my-postgres",
+ id="customers",
+ type="dataSource",
+ ),
+ description="The customers of ours.",
+ facts=[
+ DeclarativeFact(
+ description="A number of orders created by the customer - including all orders, even the non-delivered ones.",
+ id="fact.customer_order_count",
+ source_column="customer_order_count",
+ tags=["Customers"],
+ title="Customer order count",
+ ),
+ ],
+ grain=[
+ GrainIdentifier(
+ id="attr.customers.customer_name",
+ type="ATTRIBUTE",
+ ),
+ ],
+ id="customers",
+ references=[
+ DeclarativeReference(
+ identifier=ReferenceIdentifier(
+ id="customers",
+ type="DATASET",
+ ),
+ multivalue=False,
+ source_columns=["customer_id"],
+ ),
+ ],
+ tags=["Customers"],
+ title="Customers",
+ ),
+ ],
+ date_instances=[
+ DeclarativeDateDataset(
+ description="A customer order date",
+ granularities=[
+ "MINUTE",
+ ],
+ granularities_formatting=GranularitiesFormatting(
+ title_base="title_base_example",
+ title_pattern="%titleBase - %granularityTitle",
+ ),
+ id="date",
+ tags=["Customer dates"],
+ title="Date",
+ ),
+ ],
+ ),
+ ) # DeclarativeModel |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Set logical model
+ api_instance.set_logical_model(workspace_id, declarative_model)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->set_logical_model: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **declarative_model** | [**DeclarativeModel**](DeclarativeModel.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Logical model successfully set. | - |
+
+[[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)
+
+# **set_organization_layout**
+> set_organization_layout(declarative_organization)
+
+Set organization layout
+
+Sets complete layout of organization, like workspaces, user-groups, etc.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_organization import DeclarativeOrganization
+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 = layout_api.LayoutApi(api_client)
+ declarative_organization = DeclarativeOrganization(
+ data_sources=[
+ DeclarativeDataSource(
+ cache_path=[
+ "[ "dfs", "data" ]. Example used in Apache Drill.",
+ ],
+ decoded_parameters=[
+ Parameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ enable_caching=False,
+ id="pg_local_docker-demo",
+ name="postgres demo",
+ parameters=[
+ Parameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ password="*****",
+ pdm=DeclarativeTables(
+ tables=[
+ DeclarativeTable(
+ columns=[
+ DeclarativeColumn(
+ data_type="INT",
+ is_primary_key=True,
+ name="customer_id",
+ referenced_table_column="customer_id",
+ referenced_table_id="customers",
+ ),
+ ],
+ id="customers",
+ name_prefix="out_gooddata",
+ path=["table_schema","table_name"],
+ type="VIEW",
+ ),
+ ],
+ ),
+ permissions=[
+ DeclarativeDataSourcePermission(
+ assignee=AssigneeIdentifier(
+ id="id_example",
+ type="user",
+ ),
+ name="MANAGE",
+ ),
+ ],
+ schema="demo",
+ token="Bigquery service account JSON. Encode it using base64!",
+ type="POSTGRESQL",
+ url="jdbc:postgresql://postgres:5432/gooddata",
+ username="demo",
+ ),
+ ],
+ organization=DeclarativeOrganizationInfo(
+ color_palettes=[
+ DeclarativeColorPalette(
+ content={},
+ id="id_example",
+ name="name_example",
+ ),
+ ],
+ csp_directives=[
+ DeclarativeCspDirective(
+ directive="directive_example",
+ sources=[
+ "sources_example",
+ ],
+ ),
+ ],
+ early_access="early_access_example",
+ hostname="alpha.com",
+ id="Alpha corporation",
+ name="Alpha corporation",
+ oauth_client_id="oauth_client_id_example",
+ oauth_client_secret="oauth_client_secret_example",
+ oauth_issuer_id="myOidcProvider",
+ oauth_issuer_location="oauth_issuer_location_example",
+ permissions=[
+ DeclarativeOrganizationPermission(
+ assignee=AssigneeIdentifier(
+ id="id_example",
+ type="user",
+ ),
+ name="MANAGE",
+ ),
+ ],
+ settings=[
+ DeclarativeSetting(
+ content={},
+ id="timezone",
+ ),
+ ],
+ themes=[
+ DeclarativeTheme(
+ content={},
+ id="id_example",
+ name="name_example",
+ ),
+ ],
+ ),
+ user_groups=[
+ DeclarativeUserGroup(
+ id="employees.all",
+ parents=[
+ UserGroupIdentifier(
+ id="group.admins",
+ type="userGroup",
+ ),
+ ],
+ ),
+ ],
+ users=[
+ DeclarativeUser(
+ auth_id="auth_id_example",
+ id="employee123",
+ settings=[
+ DeclarativeSetting(
+ content={},
+ id="timezone",
+ ),
+ ],
+ user_groups=[
+ UserGroupIdentifier(
+ id="group.admins",
+ type="userGroup",
+ ),
+ ],
+ ),
+ ],
+ workspace_data_filters=[
+ DeclarativeWorkspaceDataFilter(
+ column_name="country_id",
+ description="ID of country",
+ id="country_id",
+ title="Country ID",
+ workspace=WorkspaceIdentifier(
+ id="alpha.sales",
+ type="workspace",
+ ),
+ workspace_data_filter_settings=[
+ DeclarativeWorkspaceDataFilterSetting(
+ description="ID of country setting",
+ filter_values=["US"],
+ id="country_id_setting",
+ title="Country ID setting",
+ workspace=WorkspaceIdentifier(
+ id="alpha.sales",
+ type="workspace",
+ ),
+ ),
+ ],
+ ),
+ ],
+ workspaces=[
+ DeclarativeWorkspace(
+ description="description_example",
+ early_access="early_access_example",
+ hierarchy_permissions=[
+ DeclarativeWorkspaceHierarchyPermission(
+ assignee=AssigneeIdentifier(
+ id="id_example",
+ type="user",
+ ),
+ name="MANAGE",
+ ),
+ ],
+ id="alpha.sales",
+ model=DeclarativeWorkspaceModel(
+ analytics=DeclarativeAnalyticsLayer(
+ analytical_dashboards=[
+ DeclarativeAnalyticalDashboard(
+ content={},
+ description="Period to period comparison of revenues in main sectors.",
+ id="revenues-analysis",
+ tags=["Revenues"],
+ title="Revenues analysis",
+ ),
+ ],
+ dashboard_plugins=[
+ DeclarativeDashboardPlugin(
+ content={},
+ description="Three dimensional view of data.",
+ id="dashboard-plugin-1",
+ tags=["Revenues"],
+ title="3D map renderer",
+ ),
+ ],
+ filter_contexts=[
+ DeclarativeFilterContext(
+ content={},
+ description="Filter Context for Sales team.",
+ id="filter-sales",
+ tags=["Revenues"],
+ title="Filter Context for Sales team",
+ ),
+ ],
+ metrics=[
+ DeclarativeMetric(
+ content={},
+ description="Sales for all the data available.",
+ id="total-sales",
+ tags=["Revenues"],
+ title="Total sales",
+ ),
+ ],
+ visualization_objects=[
+ DeclarativeVisualizationObject(
+ content={},
+ description="Simple number for total goods in current production.",
+ id="visualization-1",
+ tags=["Revenues"],
+ title="Count of goods",
+ ),
+ ],
+ ),
+ ldm=DeclarativeLdm(
+ datasets=[
+ DeclarativeDataset(
+ attributes=[
+ DeclarativeAttribute(
+ default_view=LabelIdentifier(
+ id="label_id",
+ type="label",
+ ),
+ description="Customer name including first and last name.",
+ id="attr.customers.customer_name",
+ labels=[
+ DeclarativeLabel(
+ description="Customer name",
+ id="label.customer_name",
+ source_column="customer_name",
+ tags=["Customers"],
+ title="Customer name",
+ value_type="TEXT" | "HYPERLINK" | "GEO",
+ ),
+ ],
+ sort_column="customer_name",
+ sort_direction="ASC" | "DESC",
+ source_column="customer_name",
+ tags=["Customers"],
+ title="Customer Name",
+ ),
+ ],
+ data_source_table_id=DataSourceTableIdentifier(
+ data_source_id="my-postgres",
+ id="customers",
+ type="dataSource",
+ ),
+ description="The customers of ours.",
+ facts=[
+ DeclarativeFact(
+ description="A number of orders created by the customer - including all orders, even the non-delivered ones.",
+ id="fact.customer_order_count",
+ source_column="customer_order_count",
+ tags=["Customers"],
+ title="Customer order count",
+ ),
+ ],
+ grain=[
+ GrainIdentifier(
+ id="attr.customers.customer_name",
+ type="ATTRIBUTE",
+ ),
+ ],
+ id="customers",
+ references=[
+ DeclarativeReference(
+ identifier=ReferenceIdentifier(
+ id="customers",
+ type="DATASET",
+ ),
+ multivalue=False,
+ source_columns=["customer_id"],
+ ),
+ ],
+ tags=["Customers"],
+ title="Customers",
+ ),
+ ],
+ date_instances=[
+ DeclarativeDateDataset(
+ description="A customer order date",
+ granularities=[
+ "MINUTE",
+ ],
+ granularities_formatting=GranularitiesFormatting(
+ title_base="title_base_example",
+ title_pattern="%titleBase - %granularityTitle",
+ ),
+ id="date",
+ tags=["Customer dates"],
+ title="Date",
+ ),
+ ],
+ ),
+ ),
+ name="Alpha Sales",
+ parent=WorkspaceIdentifier(
+ id="alpha.sales",
+ type="workspace",
+ ),
+ permissions=[
+ DeclarativeSingleWorkspacePermission(
+ assignee=AssigneeIdentifier(
+ id="id_example",
+ type="user",
+ ),
+ name="MANAGE",
+ ),
+ ],
+ settings=[
+ DeclarativeSetting(
+ content={},
+ id="timezone",
+ ),
+ ],
+ ),
+ ],
+ ) # DeclarativeOrganization |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Set organization layout
+ api_instance.set_organization_layout(declarative_organization)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->set_organization_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **declarative_organization** | [**DeclarativeOrganization**](DeclarativeOrganization.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Defined all parts of an organization. | - |
+
+[[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)
+
+# **set_pdm_layout**
+> set_pdm_layout(data_source_id, declarative_pdm)
+
+Set data source physical model layout
+
+Sets complete layout of tables with their columns under corresponding Data Source.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_pdm import DeclarativePdm
+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 = layout_api.LayoutApi(api_client)
+ data_source_id = "dataSourceId_example" # str |
+ declarative_pdm = DeclarativePdm(
+ pdm=DeclarativeTables(
+ tables=[
+ DeclarativeTable(
+ columns=[
+ DeclarativeColumn(
+ data_type="INT",
+ is_primary_key=True,
+ name="customer_id",
+ referenced_table_column="customer_id",
+ referenced_table_id="customers",
+ ),
+ ],
+ id="customers",
+ name_prefix="out_gooddata",
+ path=["table_schema","table_name"],
+ type="VIEW",
+ ),
+ ],
+ ),
+ ) # DeclarativePdm |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Set data source physical model layout
+ api_instance.set_pdm_layout(data_source_id, declarative_pdm)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->set_pdm_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **data_source_id** | **str**| |
+ **declarative_pdm** | [**DeclarativePdm**](DeclarativePdm.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Data source physical mode layout set successfully. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **set_workspace_data_filters_layout**
+> set_workspace_data_filters_layout(declarative_workspace_data_filters)
+
+Set all workspace data filters
+
+Sets workspace data filters in all workspaces in entire organization.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_workspace_data_filters import DeclarativeWorkspaceDataFilters
+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 = layout_api.LayoutApi(api_client)
+ declarative_workspace_data_filters = DeclarativeWorkspaceDataFilters(
+ workspace_data_filters=[
+ DeclarativeWorkspaceDataFilter(
+ column_name="country_id",
+ description="ID of country",
+ id="country_id",
+ title="Country ID",
+ workspace=WorkspaceIdentifier(
+ id="alpha.sales",
+ type="workspace",
+ ),
+ workspace_data_filter_settings=[
+ DeclarativeWorkspaceDataFilterSetting(
+ description="ID of country setting",
+ filter_values=["US"],
+ id="country_id_setting",
+ title="Country ID setting",
+ workspace=WorkspaceIdentifier(
+ id="alpha.sales",
+ type="workspace",
+ ),
+ ),
+ ],
+ ),
+ ],
+ ) # DeclarativeWorkspaceDataFilters |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Set all workspace data filters
+ api_instance.set_workspace_data_filters_layout(declarative_workspace_data_filters)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->set_workspace_data_filters_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **declarative_workspace_data_filters** | [**DeclarativeWorkspaceDataFilters**](DeclarativeWorkspaceDataFilters.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | All workspace data filters set. | - |
+
+[[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)
+
+# **set_workspace_permissions**
+> set_workspace_permissions(workspace_id, declarative_workspace_permissions)
+
+Set permissions for the workspace
+
+Set effective permissions for the workspace
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_workspace_permissions import DeclarativeWorkspacePermissions
+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 = layout_api.LayoutApi(api_client)
+ workspace_id = "workspaceId_example" # str |
+ declarative_workspace_permissions = DeclarativeWorkspacePermissions(
+ hierarchy_permissions=[
+ DeclarativeWorkspaceHierarchyPermission(
+ assignee=AssigneeIdentifier(
+ id="id_example",
+ type="user",
+ ),
+ name="MANAGE",
+ ),
+ ],
+ permissions=[
+ DeclarativeSingleWorkspacePermission(
+ assignee=AssigneeIdentifier(
+ id="id_example",
+ type="user",
+ ),
+ name="MANAGE",
+ ),
+ ],
+ ) # DeclarativeWorkspacePermissions |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Set permissions for the workspace
+ api_instance.set_workspace_permissions(workspace_id, declarative_workspace_permissions)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->set_workspace_permissions: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **workspace_id** | **str**| |
+ **declarative_workspace_permissions** | [**DeclarativeWorkspacePermissions**](DeclarativeWorkspacePermissions.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | Workspace permissions successfully set. | - |
+
+[[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)
+
+# **set_workspaces_layout**
+> set_workspaces_layout(declarative_workspaces)
+
+Set all workspaces layout
+
+Sets complete layout of workspaces, their hierarchy, models.
+
+### Example
+
+
+```python
+import time
+import gooddata_api_client
+from gooddata_api_client.api import layout_api
+from gooddata_api_client.model.declarative_workspaces import DeclarativeWorkspaces
+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 = layout_api.LayoutApi(api_client)
+ declarative_workspaces = DeclarativeWorkspaces(
+ workspace_data_filters=[
+ DeclarativeWorkspaceDataFilter(
+ column_name="country_id",
+ description="ID of country",
+ id="country_id",
+ title="Country ID",
+ workspace=WorkspaceIdentifier(
+ id="alpha.sales",
+ type="workspace",
+ ),
+ workspace_data_filter_settings=[
+ DeclarativeWorkspaceDataFilterSetting(
+ description="ID of country setting",
+ filter_values=["US"],
+ id="country_id_setting",
+ title="Country ID setting",
+ workspace=WorkspaceIdentifier(
+ id="alpha.sales",
+ type="workspace",
+ ),
+ ),
+ ],
+ ),
+ ],
+ workspaces=[
+ DeclarativeWorkspace(
+ description="description_example",
+ early_access="early_access_example",
+ hierarchy_permissions=[
+ DeclarativeWorkspaceHierarchyPermission(
+ assignee=AssigneeIdentifier(
+ id="id_example",
+ type="user",
+ ),
+ name="MANAGE",
+ ),
+ ],
+ id="alpha.sales",
+ model=DeclarativeWorkspaceModel(
+ analytics=DeclarativeAnalyticsLayer(
+ analytical_dashboards=[
+ DeclarativeAnalyticalDashboard(
+ content={},
+ description="Period to period comparison of revenues in main sectors.",
+ id="revenues-analysis",
+ tags=["Revenues"],
+ title="Revenues analysis",
+ ),
+ ],
+ dashboard_plugins=[
+ DeclarativeDashboardPlugin(
+ content={},
+ description="Three dimensional view of data.",
+ id="dashboard-plugin-1",
+ tags=["Revenues"],
+ title="3D map renderer",
+ ),
+ ],
+ filter_contexts=[
+ DeclarativeFilterContext(
+ content={},
+ description="Filter Context for Sales team.",
+ id="filter-sales",
+ tags=["Revenues"],
+ title="Filter Context for Sales team",
+ ),
+ ],
+ metrics=[
+ DeclarativeMetric(
+ content={},
+ description="Sales for all the data available.",
+ id="total-sales",
+ tags=["Revenues"],
+ title="Total sales",
+ ),
+ ],
+ visualization_objects=[
+ DeclarativeVisualizationObject(
+ content={},
+ description="Simple number for total goods in current production.",
+ id="visualization-1",
+ tags=["Revenues"],
+ title="Count of goods",
+ ),
+ ],
+ ),
+ ldm=DeclarativeLdm(
+ datasets=[
+ DeclarativeDataset(
+ attributes=[
+ DeclarativeAttribute(
+ default_view=LabelIdentifier(
+ id="label_id",
+ type="label",
+ ),
+ description="Customer name including first and last name.",
+ id="attr.customers.customer_name",
+ labels=[
+ DeclarativeLabel(
+ description="Customer name",
+ id="label.customer_name",
+ source_column="customer_name",
+ tags=["Customers"],
+ title="Customer name",
+ value_type="TEXT" | "HYPERLINK" | "GEO",
+ ),
+ ],
+ sort_column="customer_name",
+ sort_direction="ASC" | "DESC",
+ source_column="customer_name",
+ tags=["Customers"],
+ title="Customer Name",
+ ),
+ ],
+ data_source_table_id=DataSourceTableIdentifier(
+ data_source_id="my-postgres",
+ id="customers",
+ type="dataSource",
+ ),
+ description="The customers of ours.",
+ facts=[
+ DeclarativeFact(
+ description="A number of orders created by the customer - including all orders, even the non-delivered ones.",
+ id="fact.customer_order_count",
+ source_column="customer_order_count",
+ tags=["Customers"],
+ title="Customer order count",
+ ),
+ ],
+ grain=[
+ GrainIdentifier(
+ id="attr.customers.customer_name",
+ type="ATTRIBUTE",
+ ),
+ ],
+ id="customers",
+ references=[
+ DeclarativeReference(
+ identifier=ReferenceIdentifier(
+ id="customers",
+ type="DATASET",
+ ),
+ multivalue=False,
+ source_columns=["customer_id"],
+ ),
+ ],
+ tags=["Customers"],
+ title="Customers",
+ ),
+ ],
+ date_instances=[
+ DeclarativeDateDataset(
+ description="A customer order date",
+ granularities=[
+ "MINUTE",
+ ],
+ granularities_formatting=GranularitiesFormatting(
+ title_base="title_base_example",
+ title_pattern="%titleBase - %granularityTitle",
+ ),
+ id="date",
+ tags=["Customer dates"],
+ title="Date",
+ ),
+ ],
+ ),
+ ),
+ name="Alpha Sales",
+ parent=WorkspaceIdentifier(
+ id="alpha.sales",
+ type="workspace",
+ ),
+ permissions=[
+ DeclarativeSingleWorkspacePermission(
+ assignee=AssigneeIdentifier(
+ id="id_example",
+ type="user",
+ ),
+ name="MANAGE",
+ ),
+ ],
+ settings=[
+ DeclarativeSetting(
+ content={},
+ id="timezone",
+ ),
+ ],
+ ),
+ ],
+ ) # DeclarativeWorkspaces |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Set all workspaces layout
+ api_instance.set_workspaces_layout(declarative_workspaces)
+ except gooddata_api_client.ApiException as e:
+ print("Exception when calling LayoutApi->set_workspaces_layout: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **declarative_workspaces** | [**DeclarativeWorkspaces**](DeclarativeWorkspaces.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | All workspaces layout set. | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/gooddata-api-client/docs/ListLinks.md b/gooddata-api-client/docs/ListLinks.md
new file mode 100644
index 000000000..845693140
--- /dev/null
+++ b/gooddata-api-client/docs/ListLinks.md
@@ -0,0 +1,13 @@
+# ListLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_self** | **str** | A string containing the link's URL. |
+**next** | **str** | A string containing the link's URL for the next page of data. | [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/ListLinksAllOf.md b/gooddata-api-client/docs/ListLinksAllOf.md
new file mode 100644
index 000000000..105c83c51
--- /dev/null
+++ b/gooddata-api-client/docs/ListLinksAllOf.md
@@ -0,0 +1,12 @@
+# ListLinksAllOf
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**next** | **str** | A string containing the link's URL for the next page of data. | [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/MeasureDefinition.md b/gooddata-api-client/docs/MeasureDefinition.md
new file mode 100644
index 000000000..5d064c9cb
--- /dev/null
+++ b/gooddata-api-client/docs/MeasureDefinition.md
@@ -0,0 +1,17 @@
+# MeasureDefinition
+
+Abstract metric definition type
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**inline** | [**InlineMeasureDefinitionInline**](InlineMeasureDefinitionInline.md) | | [optional]
+**arithmetic_measure** | [**ArithmeticMeasureDefinitionArithmeticMeasure**](ArithmeticMeasureDefinitionArithmeticMeasure.md) | | [optional]
+**measure** | [**SimpleMeasureDefinitionMeasure**](SimpleMeasureDefinitionMeasure.md) | | [optional]
+**previous_period_measure** | [**PopDatasetMeasureDefinitionPreviousPeriodMeasure**](PopDatasetMeasureDefinitionPreviousPeriodMeasure.md) | | [optional]
+**over_period_measure** | [**PopDateMeasureDefinitionOverPeriodMeasure**](PopDateMeasureDefinitionOverPeriodMeasure.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/MeasureExecutionResultHeader.md b/gooddata-api-client/docs/MeasureExecutionResultHeader.md
new file mode 100644
index 000000000..df25c5e8f
--- /dev/null
+++ b/gooddata-api-client/docs/MeasureExecutionResultHeader.md
@@ -0,0 +1,12 @@
+# MeasureExecutionResultHeader
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**measure_header** | [**MeasureResultHeader**](MeasureResultHeader.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/MeasureGroupHeaders.md b/gooddata-api-client/docs/MeasureGroupHeaders.md
new file mode 100644
index 000000000..38d97fdcf
--- /dev/null
+++ b/gooddata-api-client/docs/MeasureGroupHeaders.md
@@ -0,0 +1,12 @@
+# MeasureGroupHeaders
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**measure_group_headers** | [**[MeasureHeaderOut]**](MeasureHeaderOut.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/MeasureHeaderOut.md b/gooddata-api-client/docs/MeasureHeaderOut.md
new file mode 100644
index 000000000..325e64c2e
--- /dev/null
+++ b/gooddata-api-client/docs/MeasureHeaderOut.md
@@ -0,0 +1,14 @@
+# MeasureHeaderOut
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**local_identifier** | **str** | |
+**format** | **str** | | [optional]
+**name** | **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/MeasureItem.md b/gooddata-api-client/docs/MeasureItem.md
new file mode 100644
index 000000000..e68d82aef
--- /dev/null
+++ b/gooddata-api-client/docs/MeasureItem.md
@@ -0,0 +1,13 @@
+# MeasureItem
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**definition** | [**MeasureDefinition**](MeasureDefinition.md) | |
+**local_identifier** | **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/MeasureResultHeader.md b/gooddata-api-client/docs/MeasureResultHeader.md
new file mode 100644
index 000000000..f72fa10e3
--- /dev/null
+++ b/gooddata-api-client/docs/MeasureResultHeader.md
@@ -0,0 +1,13 @@
+# MeasureResultHeader
+
+Header containing the information related to metrics.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**measure_index** | **int** | Metric index. Starts at 0. |
+**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/MeasureValueFilter.md b/gooddata-api-client/docs/MeasureValueFilter.md
new file mode 100644
index 000000000..9b770dde1
--- /dev/null
+++ b/gooddata-api-client/docs/MeasureValueFilter.md
@@ -0,0 +1,14 @@
+# MeasureValueFilter
+
+Abstract filter definition type filtering by the value of the metric.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**comparison_measure_value_filter** | [**ComparisonMeasureValueFilterComparisonMeasureValueFilter**](ComparisonMeasureValueFilterComparisonMeasureValueFilter.md) | | [optional]
+**range_measure_value_filter** | [**RangeMeasureValueFilterRangeMeasureValueFilter**](RangeMeasureValueFilterRangeMeasureValueFilter.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/NegativeAttributeFilter.md b/gooddata-api-client/docs/NegativeAttributeFilter.md
new file mode 100644
index 000000000..2d031d527
--- /dev/null
+++ b/gooddata-api-client/docs/NegativeAttributeFilter.md
@@ -0,0 +1,13 @@
+# NegativeAttributeFilter
+
+Filter able to limit element values by label and related selected negated elements.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**negative_attribute_filter** | [**NegativeAttributeFilterNegativeAttributeFilter**](NegativeAttributeFilterNegativeAttributeFilter.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/NegativeAttributeFilterNegativeAttributeFilter.md b/gooddata-api-client/docs/NegativeAttributeFilterNegativeAttributeFilter.md
new file mode 100644
index 000000000..77d345d81
--- /dev/null
+++ b/gooddata-api-client/docs/NegativeAttributeFilterNegativeAttributeFilter.md
@@ -0,0 +1,14 @@
+# NegativeAttributeFilterNegativeAttributeFilter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**label** | [**AfmIdentifier**](AfmIdentifier.md) | |
+**not_in** | [**AttributeFilterElements**](AttributeFilterElements.md) | |
+**apply_on_result** | **bool** | | [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/ObjectLinks.md b/gooddata-api-client/docs/ObjectLinks.md
new file mode 100644
index 000000000..d2761c718
--- /dev/null
+++ b/gooddata-api-client/docs/ObjectLinks.md
@@ -0,0 +1,12 @@
+# ObjectLinks
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_self** | **str** | A string containing the link's URL. |
+**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/ObjectLinksContainer.md b/gooddata-api-client/docs/ObjectLinksContainer.md
new file mode 100644
index 000000000..69bc8612f
--- /dev/null
+++ b/gooddata-api-client/docs/ObjectLinksContainer.md
@@ -0,0 +1,12 @@
+# ObjectLinksContainer
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**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/Paging.md b/gooddata-api-client/docs/Paging.md
new file mode 100644
index 000000000..78ee468bb
--- /dev/null
+++ b/gooddata-api-client/docs/Paging.md
@@ -0,0 +1,16 @@
+# Paging
+
+Current page description.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**count** | **int** | Count of items in this page. |
+**offset** | **int** | Offset of this page. |
+**total** | **int** | Count of returnable items ignoring paging. |
+**next** | **str** | Link to next page, or null if this is last page. | [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/Parameter.md b/gooddata-api-client/docs/Parameter.md
new file mode 100644
index 000000000..1c744126c
--- /dev/null
+++ b/gooddata-api-client/docs/Parameter.md
@@ -0,0 +1,13 @@
+# Parameter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+**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/PlatformUsage.md b/gooddata-api-client/docs/PlatformUsage.md
new file mode 100644
index 000000000..e77ec532e
--- /dev/null
+++ b/gooddata-api-client/docs/PlatformUsage.md
@@ -0,0 +1,13 @@
+# PlatformUsage
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+**count** | **int** | | [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/PlatformUsageRequest.md b/gooddata-api-client/docs/PlatformUsageRequest.md
new file mode 100644
index 000000000..9ca868b5f
--- /dev/null
+++ b/gooddata-api-client/docs/PlatformUsageRequest.md
@@ -0,0 +1,12 @@
+# PlatformUsageRequest
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**usage_item_names** | **[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/PopDataset.md b/gooddata-api-client/docs/PopDataset.md
new file mode 100644
index 000000000..5ca93b2f9
--- /dev/null
+++ b/gooddata-api-client/docs/PopDataset.md
@@ -0,0 +1,13 @@
+# PopDataset
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dataset** | [**AfmObjectIdentifierDataset**](AfmObjectIdentifierDataset.md) | |
+**periods_ago** | **int** | |
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/PopDatasetMeasureDefinition.md b/gooddata-api-client/docs/PopDatasetMeasureDefinition.md
new file mode 100644
index 000000000..4ffa00d4a
--- /dev/null
+++ b/gooddata-api-client/docs/PopDatasetMeasureDefinition.md
@@ -0,0 +1,13 @@
+# PopDatasetMeasureDefinition
+
+Previous period type of metric.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**previous_period_measure** | [**PopDatasetMeasureDefinitionPreviousPeriodMeasure**](PopDatasetMeasureDefinitionPreviousPeriodMeasure.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/PopDatasetMeasureDefinitionPreviousPeriodMeasure.md b/gooddata-api-client/docs/PopDatasetMeasureDefinitionPreviousPeriodMeasure.md
new file mode 100644
index 000000000..a5d5abe03
--- /dev/null
+++ b/gooddata-api-client/docs/PopDatasetMeasureDefinitionPreviousPeriodMeasure.md
@@ -0,0 +1,13 @@
+# PopDatasetMeasureDefinitionPreviousPeriodMeasure
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**date_datasets** | [**[PopDataset]**](PopDataset.md) | |
+**measure_identifier** | [**AfmLocalIdentifier**](AfmLocalIdentifier.md) | |
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[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/PopDate.md b/gooddata-api-client/docs/PopDate.md
new file mode 100644
index 000000000..fcd45fb37
--- /dev/null
+++ b/gooddata-api-client/docs/PopDate.md
@@ -0,0 +1,13 @@
+# PopDate
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute** | [**AfmObjectIdentifierAttribute**](AfmObjectIdentifierAttribute.md) | |
+**periods_ago** | **int** | |
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/PopDateMeasureDefinition.md b/gooddata-api-client/docs/PopDateMeasureDefinition.md
new file mode 100644
index 000000000..c1ba87b35
--- /dev/null
+++ b/gooddata-api-client/docs/PopDateMeasureDefinition.md
@@ -0,0 +1,13 @@
+# PopDateMeasureDefinition
+
+Period over period type of metric.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**over_period_measure** | [**PopDateMeasureDefinitionOverPeriodMeasure**](PopDateMeasureDefinitionOverPeriodMeasure.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/PopDateMeasureDefinitionOverPeriodMeasure.md b/gooddata-api-client/docs/PopDateMeasureDefinitionOverPeriodMeasure.md
new file mode 100644
index 000000000..b240b5ba2
--- /dev/null
+++ b/gooddata-api-client/docs/PopDateMeasureDefinitionOverPeriodMeasure.md
@@ -0,0 +1,13 @@
+# PopDateMeasureDefinitionOverPeriodMeasure
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**date_attributes** | [**[PopDate]**](PopDate.md) | |
+**measure_identifier** | [**AfmLocalIdentifier**](AfmLocalIdentifier.md) | |
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[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/PopMeasureDefinition.md b/gooddata-api-client/docs/PopMeasureDefinition.md
new file mode 100644
index 000000000..cb0e1e379
--- /dev/null
+++ b/gooddata-api-client/docs/PopMeasureDefinition.md
@@ -0,0 +1,13 @@
+# PopMeasureDefinition
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**previous_period_measure** | [**PopDatasetMeasureDefinitionPreviousPeriodMeasure**](PopDatasetMeasureDefinitionPreviousPeriodMeasure.md) | | [optional]
+**over_period_measure** | [**PopDateMeasureDefinitionOverPeriodMeasure**](PopDateMeasureDefinitionOverPeriodMeasure.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/PositiveAttributeFilter.md b/gooddata-api-client/docs/PositiveAttributeFilter.md
new file mode 100644
index 000000000..2a85e13e0
--- /dev/null
+++ b/gooddata-api-client/docs/PositiveAttributeFilter.md
@@ -0,0 +1,13 @@
+# PositiveAttributeFilter
+
+Filter able to limit element values by label and related selected elements.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**positive_attribute_filter** | [**PositiveAttributeFilterPositiveAttributeFilter**](PositiveAttributeFilterPositiveAttributeFilter.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/PositiveAttributeFilterPositiveAttributeFilter.md b/gooddata-api-client/docs/PositiveAttributeFilterPositiveAttributeFilter.md
new file mode 100644
index 000000000..a3d66419f
--- /dev/null
+++ b/gooddata-api-client/docs/PositiveAttributeFilterPositiveAttributeFilter.md
@@ -0,0 +1,14 @@
+# PositiveAttributeFilterPositiveAttributeFilter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_in** | [**AttributeFilterElements**](AttributeFilterElements.md) | |
+**label** | [**AfmIdentifier**](AfmIdentifier.md) | |
+**apply_on_result** | **bool** | | [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/RangeMeasureValueFilter.md b/gooddata-api-client/docs/RangeMeasureValueFilter.md
new file mode 100644
index 000000000..57e64a47d
--- /dev/null
+++ b/gooddata-api-client/docs/RangeMeasureValueFilter.md
@@ -0,0 +1,13 @@
+# RangeMeasureValueFilter
+
+Filter the result by comparing specified metric to given range of values.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**range_measure_value_filter** | [**RangeMeasureValueFilterRangeMeasureValueFilter**](RangeMeasureValueFilterRangeMeasureValueFilter.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/RangeMeasureValueFilterRangeMeasureValueFilter.md b/gooddata-api-client/docs/RangeMeasureValueFilterRangeMeasureValueFilter.md
new file mode 100644
index 000000000..39c6ed2b5
--- /dev/null
+++ b/gooddata-api-client/docs/RangeMeasureValueFilterRangeMeasureValueFilter.md
@@ -0,0 +1,17 @@
+# RangeMeasureValueFilterRangeMeasureValueFilter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_from** | **float** | |
+**measure** | [**AfmIdentifier**](AfmIdentifier.md) | |
+**operator** | **str** | |
+**to** | **float** | |
+**apply_on_result** | **bool** | | [optional]
+**treat_null_values_as** | **float** | | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/docs/RankingFilter.md b/gooddata-api-client/docs/RankingFilter.md
new file mode 100644
index 000000000..26511d7d2
--- /dev/null
+++ b/gooddata-api-client/docs/RankingFilter.md
@@ -0,0 +1,13 @@
+# RankingFilter
+
+Filter the result on top/bottom N values according to given metric(s).
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**ranking_filter** | [**RankingFilterRankingFilter**](RankingFilterRankingFilter.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/RankingFilterRankingFilter.md b/gooddata-api-client/docs/RankingFilterRankingFilter.md
new file mode 100644
index 000000000..15c77ea4b
--- /dev/null
+++ b/gooddata-api-client/docs/RankingFilterRankingFilter.md
@@ -0,0 +1,15 @@
+# RankingFilterRankingFilter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**measures** | [**[AfmIdentifier]**](AfmIdentifier.md) | |
+**operator** | **str** | |
+**value** | **int** | |
+**apply_on_result** | **bool** | | [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/ReferenceIdentifier.md b/gooddata-api-client/docs/ReferenceIdentifier.md
new file mode 100644
index 000000000..5a9a4449e
--- /dev/null
+++ b/gooddata-api-client/docs/ReferenceIdentifier.md
@@ -0,0 +1,14 @@
+# ReferenceIdentifier
+
+A reference identifier.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Reference ID. |
+**type** | **str** | A type of the reference. | defaults to "dataset"
+**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/RelativeDateFilter.md b/gooddata-api-client/docs/RelativeDateFilter.md
new file mode 100644
index 000000000..e83264ae5
--- /dev/null
+++ b/gooddata-api-client/docs/RelativeDateFilter.md
@@ -0,0 +1,13 @@
+# RelativeDateFilter
+
+A date filter specifying a time interval that is relative to the current date. For example, last week, next month, and so on. Field dataset is representing qualifier of date dimension.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**relative_date_filter** | [**RelativeDateFilterRelativeDateFilter**](RelativeDateFilterRelativeDateFilter.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/RelativeDateFilterRelativeDateFilter.md b/gooddata-api-client/docs/RelativeDateFilterRelativeDateFilter.md
new file mode 100644
index 000000000..5a17d7838
--- /dev/null
+++ b/gooddata-api-client/docs/RelativeDateFilterRelativeDateFilter.md
@@ -0,0 +1,16 @@
+# RelativeDateFilterRelativeDateFilter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dataset** | [**AfmObjectIdentifierDataset**](AfmObjectIdentifierDataset.md) | |
+**_from** | **int** | Start of the filtering interval. Specified by number of periods (with respect to given granularity). Typically negative (historical time interval like -2 for '2 days/weeks, ... ago'). |
+**granularity** | **str** | Date granularity specifying particular date attribute in given dimension. |
+**to** | **int** | End of the filtering interval. Specified by number of periods (with respect to given granularity). Value 'O' is representing current time-interval (current day, week, ...). |
+**apply_on_result** | **bool** | | [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/ResolveSettingsRequest.md b/gooddata-api-client/docs/ResolveSettingsRequest.md
new file mode 100644
index 000000000..f80b70edc
--- /dev/null
+++ b/gooddata-api-client/docs/ResolveSettingsRequest.md
@@ -0,0 +1,13 @@
+# ResolveSettingsRequest
+
+A request containing setting IDs to resolve.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**settings** | **[str]** | An array of setting IDs to resolve. |
+**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/RestApiIdentifier.md b/gooddata-api-client/docs/RestApiIdentifier.md
new file mode 100644
index 000000000..620bbffd1
--- /dev/null
+++ b/gooddata-api-client/docs/RestApiIdentifier.md
@@ -0,0 +1,14 @@
+# RestApiIdentifier
+
+Object identifier.
+
+## 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/ResultCacheMetadata.md b/gooddata-api-client/docs/ResultCacheMetadata.md
new file mode 100644
index 000000000..ca7506f26
--- /dev/null
+++ b/gooddata-api-client/docs/ResultCacheMetadata.md
@@ -0,0 +1,16 @@
+# ResultCacheMetadata
+
+All execution result's metadata used for calculation including ExecutionResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**afm** | [**AFM**](AFM.md) | |
+**execution_response** | [**ExecutionResponse**](ExecutionResponse.md) | |
+**result_size** | **int** | |
+**result_spec** | [**ResultSpec**](ResultSpec.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/ResultDimension.md b/gooddata-api-client/docs/ResultDimension.md
new file mode 100644
index 000000000..72c439474
--- /dev/null
+++ b/gooddata-api-client/docs/ResultDimension.md
@@ -0,0 +1,13 @@
+# ResultDimension
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**headers** | [**[ResultDimensionHeader]**](ResultDimensionHeader.md) | |
+**local_identifier** | **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/ResultDimensionHeader.md b/gooddata-api-client/docs/ResultDimensionHeader.md
new file mode 100644
index 000000000..ecd3d21f1
--- /dev/null
+++ b/gooddata-api-client/docs/ResultDimensionHeader.md
@@ -0,0 +1,13 @@
+# ResultDimensionHeader
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**measure_group_headers** | [**[MeasureHeaderOut]**](MeasureHeaderOut.md) | | [optional]
+**attribute_header** | [**AttributeHeaderOutAttributeHeader**](AttributeHeaderOutAttributeHeader.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/ResultSpec.md b/gooddata-api-client/docs/ResultSpec.md
new file mode 100644
index 000000000..eb542f815
--- /dev/null
+++ b/gooddata-api-client/docs/ResultSpec.md
@@ -0,0 +1,14 @@
+# ResultSpec
+
+Specifies how the result data will be formatted (```dimensions```) and which additional data shall be computed (```totals```).
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dimensions** | [**[Dimension]**](Dimension.md) | |
+**totals** | [**[Total]**](Total.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/ScanRequest.md b/gooddata-api-client/docs/ScanRequest.md
new file mode 100644
index 000000000..fc6f9b06b
--- /dev/null
+++ b/gooddata-api-client/docs/ScanRequest.md
@@ -0,0 +1,18 @@
+# ScanRequest
+
+A request containing all information critical to model scanning.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**scan_tables** | **bool** | A flag indicating whether the tables should be scanned. |
+**scan_views** | **bool** | A flag indicating whether the views should be scanned. |
+**separator** | **str** | A separator between prefixes and the names. |
+**schemata** | **[str]** | What schemata will be scanned. | [optional]
+**table_prefix** | **str** | Tables starting with this prefix will be scanned. The prefix is then followed by the value of `separator` parameter. Given the table prefix is `out_table` and separator is `__`, the table with name like `out_table__customers` will be scanned. | [optional]
+**view_prefix** | **str** | Views starting with this prefix will be scanned. The prefix is then followed by the value of `separator` parameter. Given the view prefix is `out_view` and separator is `__`, the table with name like `out_view__us_customers` will be scanned. | [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/ScanResultPdm.md b/gooddata-api-client/docs/ScanResultPdm.md
new file mode 100644
index 000000000..df8396a81
--- /dev/null
+++ b/gooddata-api-client/docs/ScanResultPdm.md
@@ -0,0 +1,14 @@
+# ScanResultPdm
+
+Result of scan of data source physical model.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**pdm** | [**DeclarativeTables**](DeclarativeTables.md) | |
+**warnings** | [**[TableWarning]**](TableWarning.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/Settings.md b/gooddata-api-client/docs/Settings.md
new file mode 100644
index 000000000..f8cedf8ba
--- /dev/null
+++ b/gooddata-api-client/docs/Settings.md
@@ -0,0 +1,14 @@
+# Settings
+
+XLSX specific settings.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**merge_headers** | **bool** | Merge equal headers in neighbouring cells. |
+**show_filters** | **bool** | Print applied filters on top of the document. |
+**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/SimpleMeasureDefinition.md b/gooddata-api-client/docs/SimpleMeasureDefinition.md
new file mode 100644
index 000000000..a7d9c7c9c
--- /dev/null
+++ b/gooddata-api-client/docs/SimpleMeasureDefinition.md
@@ -0,0 +1,12 @@
+# SimpleMeasureDefinition
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**measure** | [**SimpleMeasureDefinitionMeasure**](SimpleMeasureDefinitionMeasure.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/SimpleMeasureDefinitionMeasure.md b/gooddata-api-client/docs/SimpleMeasureDefinitionMeasure.md
new file mode 100644
index 000000000..fbc93fb0a
--- /dev/null
+++ b/gooddata-api-client/docs/SimpleMeasureDefinitionMeasure.md
@@ -0,0 +1,15 @@
+# SimpleMeasureDefinitionMeasure
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**item** | [**AfmObjectIdentifierCore**](AfmObjectIdentifierCore.md) | |
+**aggregation** | **str** | Definition of aggregation type of the metric. | [optional]
+**compute_ratio** | **bool** | If true compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down). | [optional] if omitted the server will use the default value of False
+**filters** | [**[FilterDefinitionForSimpleMeasure]**](FilterDefinitionForSimpleMeasure.md) | Metrics can be filtered by attribute filters with the same interface as ones for global AFM. Note that only one DateFilter is allowed. | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[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/SortKey.md b/gooddata-api-client/docs/SortKey.md
new file mode 100644
index 000000000..a07267fc8
--- /dev/null
+++ b/gooddata-api-client/docs/SortKey.md
@@ -0,0 +1,14 @@
+# SortKey
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute** | [**SortKeyAttributeAttribute**](SortKeyAttributeAttribute.md) | | [optional]
+**value** | [**SortKeyValueValue**](SortKeyValueValue.md) | | [optional]
+**total** | [**SortKeyTotalTotal**](SortKeyTotalTotal.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/SortKeyAttribute.md b/gooddata-api-client/docs/SortKeyAttribute.md
new file mode 100644
index 000000000..b063eec36
--- /dev/null
+++ b/gooddata-api-client/docs/SortKeyAttribute.md
@@ -0,0 +1,13 @@
+# SortKeyAttribute
+
+Sorting rule for sorting by attribute value in current dimension.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute** | [**SortKeyAttributeAttribute**](SortKeyAttributeAttribute.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/SortKeyAttributeAttribute.md b/gooddata-api-client/docs/SortKeyAttributeAttribute.md
new file mode 100644
index 000000000..0142644f9
--- /dev/null
+++ b/gooddata-api-client/docs/SortKeyAttributeAttribute.md
@@ -0,0 +1,14 @@
+# SortKeyAttributeAttribute
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attribute_identifier** | **str** | Item reference (to 'itemIdentifiers') referencing, which item should be used for sorting. Only references to attributes are allowed. |
+**direction** | **str** | Sorting elements - ascending/descending order. | [optional]
+**sort_type** | **str** | Mechanism by which this attribute should be sorted. Available options are: - DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) - LABEL: sorting by this label values - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) - AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions. | [optional] if omitted the server will use the default value of "DEFAULT"
+**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/SortKeyTotal.md b/gooddata-api-client/docs/SortKeyTotal.md
new file mode 100644
index 000000000..4b2042048
--- /dev/null
+++ b/gooddata-api-client/docs/SortKeyTotal.md
@@ -0,0 +1,13 @@
+# SortKeyTotal
+
+Sorting rule for sorting by total value. DataColumnLocators are only required if there is ambiguity. Locator for measureGroup is taken from the metric of the total.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total** | [**SortKeyTotalTotal**](SortKeyTotalTotal.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/SortKeyTotalTotal.md b/gooddata-api-client/docs/SortKeyTotalTotal.md
new file mode 100644
index 000000000..f035bf0e6
--- /dev/null
+++ b/gooddata-api-client/docs/SortKeyTotalTotal.md
@@ -0,0 +1,14 @@
+# SortKeyTotalTotal
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total_identifier** | **str** | |
+**data_column_locators** | [**DataColumnLocators**](DataColumnLocators.md) | | [optional]
+**direction** | **str** | Sorting elements - ascending/descending order. | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[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/SortKeyValue.md b/gooddata-api-client/docs/SortKeyValue.md
new file mode 100644
index 000000000..5daa1dd0d
--- /dev/null
+++ b/gooddata-api-client/docs/SortKeyValue.md
@@ -0,0 +1,13 @@
+# SortKeyValue
+
+Sorting rule for sorting by measure value. DataColumnLocators for each dimension opposite to the sorted one must be specified.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**SortKeyValueValue**](SortKeyValueValue.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/SortKeyValueValue.md b/gooddata-api-client/docs/SortKeyValueValue.md
new file mode 100644
index 000000000..73ddef89d
--- /dev/null
+++ b/gooddata-api-client/docs/SortKeyValueValue.md
@@ -0,0 +1,13 @@
+# SortKeyValueValue
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data_column_locators** | [**DataColumnLocators**](DataColumnLocators.md) | |
+**direction** | **str** | Sorting elements - ascending/descending order. | [optional]
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[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/TableWarning.md b/gooddata-api-client/docs/TableWarning.md
new file mode 100644
index 000000000..6ba1e02ca
--- /dev/null
+++ b/gooddata-api-client/docs/TableWarning.md
@@ -0,0 +1,15 @@
+# TableWarning
+
+Warnings related to single table.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**columns** | [**[ColumnWarning]**](ColumnWarning.md) | |
+**name** | **[str]** | Table name. |
+**message** | **[str]** | Warning message related to the table. | [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/TabularExportRequest.md b/gooddata-api-client/docs/TabularExportRequest.md
new file mode 100644
index 000000000..cf387f805
--- /dev/null
+++ b/gooddata-api-client/docs/TabularExportRequest.md
@@ -0,0 +1,17 @@
+# TabularExportRequest
+
+Export request object describing the export properties and overrides for tabular exports.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**execution_result** | **str** | Execution result identifier. |
+**file_name** | **str** | Filename of downloaded file without extension. |
+**format** | **str** | Expected file format. | defaults to "CSV"
+**custom_override** | [**CustomOverride**](CustomOverride.md) | | [optional]
+**settings** | [**Settings**](Settings.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/TabularExportResult.md b/gooddata-api-client/docs/TabularExportResult.md
new file mode 100644
index 000000000..c27ccfec0
--- /dev/null
+++ b/gooddata-api-client/docs/TabularExportResult.md
@@ -0,0 +1,12 @@
+# TabularExportResult
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**export_result** | **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/TestDefinitionRequest.md b/gooddata-api-client/docs/TestDefinitionRequest.md
new file mode 100644
index 000000000..25d34153d
--- /dev/null
+++ b/gooddata-api-client/docs/TestDefinitionRequest.md
@@ -0,0 +1,19 @@
+# TestDefinitionRequest
+
+A request containing all information for testing data source definition.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | Type of database, where test should connect to. |
+**url** | **str** | URL to database in JDBC format, where test should connect to. |
+**parameters** | [**[DataSourceParameter]**](DataSourceParameter.md) | | [optional]
+**password** | **str** | Database user password. | [optional]
+**schema** | **str** | Database schema. | [optional]
+**token** | **str** | Secret for token based authentication for data sources which supports it. | [optional]
+**username** | **str** | Database user name. | [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/TestRequest.md b/gooddata-api-client/docs/TestRequest.md
new file mode 100644
index 000000000..6164193e1
--- /dev/null
+++ b/gooddata-api-client/docs/TestRequest.md
@@ -0,0 +1,20 @@
+# TestRequest
+
+A request containing all information for testing existing data source.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**cache_path** | **[str]** | | [optional]
+**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
+**parameters** | [**[DataSourceParameter]**](DataSourceParameter.md) | | [optional]
+**password** | **str** | Database user password. | [optional]
+**schema** | **str** | Database schema. | [optional]
+**token** | **str** | Secret for token based authentication for data sources which supports it. | [optional]
+**url** | **str** | URL to database in JDBC format, where test should connect to. | [optional]
+**username** | **str** | Database user name. | [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/TestResponse.md b/gooddata-api-client/docs/TestResponse.md
new file mode 100644
index 000000000..70f73b19a
--- /dev/null
+++ b/gooddata-api-client/docs/TestResponse.md
@@ -0,0 +1,14 @@
+# TestResponse
+
+Response from data source testing.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**successful** | **bool** | A flag indicating whether test passed or not. |
+**error** | **str** | Field containing more details in case of a failure. Details are available to a privileged user only. | [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/Total.md b/gooddata-api-client/docs/Total.md
new file mode 100644
index 000000000..05e31881a
--- /dev/null
+++ b/gooddata-api-client/docs/Total.md
@@ -0,0 +1,16 @@
+# Total
+
+Definition of a total. There are two types of totals: grand totals and subtotals. Grand total data will be returned in a separate section of the result structure while subtotals are fully integrated into the main result data. The mechanism for this distinction is automatic and it's described in `TotalDimension`
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**function** | **str** | Aggregation function to compute the total. |
+**local_identifier** | **str** | Total identification within this request. Used e.g. in sorting by a total. |
+**metric** | **str** | The metric for which the total will be computed |
+**total_dimensions** | [**[TotalDimension]**](TotalDimension.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/TotalDimension.md b/gooddata-api-client/docs/TotalDimension.md
new file mode 100644
index 000000000..732c5fb23
--- /dev/null
+++ b/gooddata-api-client/docs/TotalDimension.md
@@ -0,0 +1,14 @@
+# TotalDimension
+
+A list of dimensions across which the total will be computed. Total headers for only these dimensions will be returned in the result.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dimension_identifier** | **str** | An identifier of a dimension for which the total will be computed. |
+**total_dimension_items** | **[str]** | List of dimension items which will be used for total computation. The total is a grand total in this dimension if the list is empty or it includes the first dimension item from the dimension definition, and its data and header will be returned in a separate `ExecutionResultGrandTotal` structure. Otherwise, it is a subtotal and the data will be integrated into the main result. |
+**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/TotalExecutionResultHeader.md b/gooddata-api-client/docs/TotalExecutionResultHeader.md
new file mode 100644
index 000000000..e16c6eba0
--- /dev/null
+++ b/gooddata-api-client/docs/TotalExecutionResultHeader.md
@@ -0,0 +1,12 @@
+# TotalExecutionResultHeader
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total_header** | [**TotalResultHeader**](TotalResultHeader.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/TotalResultHeader.md b/gooddata-api-client/docs/TotalResultHeader.md
new file mode 100644
index 000000000..c58b4da09
--- /dev/null
+++ b/gooddata-api-client/docs/TotalResultHeader.md
@@ -0,0 +1,13 @@
+# TotalResultHeader
+
+Header containing the information related to a subtotal.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**function** | **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/UserGroupIdentifier.md b/gooddata-api-client/docs/UserGroupIdentifier.md
new file mode 100644
index 000000000..58b9c6e0f
--- /dev/null
+++ b/gooddata-api-client/docs/UserGroupIdentifier.md
@@ -0,0 +1,14 @@
+# UserGroupIdentifier
+
+A user group identifier.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Identifier of the user group. |
+**type** | **str** | A type. | defaults to "userGroup"
+**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/WorkspaceIdentifier.md b/gooddata-api-client/docs/WorkspaceIdentifier.md
new file mode 100644
index 000000000..a69d274e0
--- /dev/null
+++ b/gooddata-api-client/docs/WorkspaceIdentifier.md
@@ -0,0 +1,14 @@
+# WorkspaceIdentifier
+
+A workspace identifier.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **str** | Identifier of the workspace. |
+**type** | **str** | A type. | defaults to "workspace"
+**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/gooddata-api-client/gooddata_api_client/__init__.py b/gooddata-api-client/gooddata_api_client/__init__.py
new file mode 100644
index 000000000..e756f5083
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/__init__.py
@@ -0,0 +1,28 @@
+# flake8: noqa
+
+"""
+ 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
+"""
+
+
+__version__ = "1.1.0"
+
+# import ApiClient
+from gooddata_api_client.api_client import ApiClient
+
+# import Configuration
+from gooddata_api_client.configuration import Configuration
+
+# import exceptions
+from gooddata_api_client.exceptions import OpenApiException
+from gooddata_api_client.exceptions import ApiAttributeError
+from gooddata_api_client.exceptions import ApiTypeError
+from gooddata_api_client.exceptions import ApiValueError
+from gooddata_api_client.exceptions import ApiKeyError
+from gooddata_api_client.exceptions import ApiException
diff --git a/gooddata-api-client/gooddata_api_client/api/__init__.py b/gooddata-api-client/gooddata_api_client/api/__init__.py
new file mode 100644
index 000000000..274f2667a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/api/__init__.py
@@ -0,0 +1,3 @@
+# do not import all apis into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all apis from one package, import them with
+# from gooddata_api_client.apis import ActionsApi
diff --git a/gooddata-api-client/gooddata_api_client/api/actions_api.py b/gooddata-api-client/gooddata_api_client/api/actions_api.py
new file mode 100644
index 000000000..aafd18524
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/api/actions_api.py
@@ -0,0 +1,3487 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.api_client import ApiClient, Endpoint as _Endpoint
+from gooddata_api_client.model_utils import ( # noqa: F401
+ check_allowed_values,
+ check_validations,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_and_convert_types
+)
+from gooddata_api_client.model.afm_execution import AfmExecution
+from gooddata_api_client.model.afm_execution_response import AfmExecutionResponse
+from gooddata_api_client.model.afm_valid_objects_query import AfmValidObjectsQuery
+from gooddata_api_client.model.afm_valid_objects_response import AfmValidObjectsResponse
+from gooddata_api_client.model.api_entitlement import ApiEntitlement
+from gooddata_api_client.model.data_source_schemata import DataSourceSchemata
+from gooddata_api_client.model.declarative_model import DeclarativeModel
+from gooddata_api_client.model.declarative_setting import DeclarativeSetting
+from gooddata_api_client.model.dependent_entities_request import DependentEntitiesRequest
+from gooddata_api_client.model.dependent_entities_response import DependentEntitiesResponse
+from gooddata_api_client.model.elements_request import ElementsRequest
+from gooddata_api_client.model.elements_response import ElementsResponse
+from gooddata_api_client.model.entitlements_request import EntitlementsRequest
+from gooddata_api_client.model.execution_result import ExecutionResult
+from gooddata_api_client.model.generate_ldm_request import GenerateLdmRequest
+from gooddata_api_client.model.platform_usage import PlatformUsage
+from gooddata_api_client.model.platform_usage_request import PlatformUsageRequest
+from gooddata_api_client.model.resolve_settings_request import ResolveSettingsRequest
+from gooddata_api_client.model.result_cache_metadata import ResultCacheMetadata
+from gooddata_api_client.model.scan_request import ScanRequest
+from gooddata_api_client.model.scan_result_pdm import ScanResultPdm
+from gooddata_api_client.model.tabular_export_request import TabularExportRequest
+from gooddata_api_client.model.tabular_export_result import TabularExportResult
+from gooddata_api_client.model.test_definition_request import TestDefinitionRequest
+from gooddata_api_client.model.test_request import TestRequest
+from gooddata_api_client.model.test_response import TestResponse
+
+
+class ActionsApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+ self.all_platform_usage_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([PlatformUsage],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/collectUsage',
+ 'operation_id': 'all_platform_usage',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.compute_label_elements_post_endpoint = _Endpoint(
+ settings={
+ 'response_type': (ElementsResponse,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/collectLabelElements',
+ 'operation_id': 'compute_label_elements_post',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'elements_request',
+ 'offset',
+ 'limit',
+ 'skip_cache',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'elements_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'workspace_id',
+ 'offset',
+ 'limit',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('workspace_id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('offset',): {
+
+ 'inclusive_maximum': 10000,
+ 'inclusive_minimum': 0,
+ },
+ ('limit',): {
+
+ 'inclusive_maximum': 10000,
+ 'inclusive_minimum': 1,
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'elements_request':
+ (ElementsRequest,),
+ 'offset':
+ (int,),
+ 'limit':
+ (int,),
+ 'skip_cache':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'offset': 'offset',
+ 'limit': 'limit',
+ 'skip_cache': 'skip-cache',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'elements_request': 'body',
+ 'offset': 'query',
+ 'limit': 'query',
+ 'skip_cache': 'header',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.compute_report_endpoint = _Endpoint(
+ settings={
+ 'response_type': (AfmExecutionResponse,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/afm/execute',
+ 'operation_id': 'compute_report',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'afm_execution',
+ 'skip_cache',
+ 'timestamp',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'afm_execution',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'workspace_id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('workspace_id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'afm_execution':
+ (AfmExecution,),
+ 'skip_cache':
+ (bool,),
+ 'timestamp':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'skip_cache': 'skip-cache',
+ 'timestamp': 'timestamp',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'afm_execution': 'body',
+ 'skip_cache': 'header',
+ 'timestamp': 'header',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.compute_valid_objects_endpoint = _Endpoint(
+ settings={
+ 'response_type': (AfmValidObjectsResponse,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/afm/computeValidObjects',
+ 'operation_id': 'compute_valid_objects',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'afm_valid_objects_query',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'afm_valid_objects_query',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'workspace_id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('workspace_id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'afm_valid_objects_query':
+ (AfmValidObjectsQuery,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'afm_valid_objects_query': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_tabular_export_endpoint = _Endpoint(
+ settings={
+ 'response_type': (TabularExportResult,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/export/tabular',
+ 'operation_id': 'create_tabular_export',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'tabular_export_request',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'tabular_export_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'tabular_export_request':
+ (TabularExportRequest,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'tabular_export_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.explain_afm_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/afm/explain',
+ 'operation_id': 'explain_afm',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'afm_execution',
+ 'explain_type',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'afm_execution',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'explain_type',
+ ],
+ 'validation': [
+ 'workspace_id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('workspace_id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('explain_type',): {
+
+ "MAQL": "MAQL",
+ "GRPC_MODEL": "GRPC_MODEL",
+ "WDF": "WDF",
+ "QT": "QT",
+ "QT_SVG": "QT_SVG",
+ "OPT_QT": "OPT_QT",
+ "OPT_QT_SVG": "OPT_QT_SVG",
+ "SQL": "SQL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'afm_execution':
+ (AfmExecution,),
+ 'explain_type':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'explain_type': 'explainType',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'afm_execution': 'body',
+ 'explain_type': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json',
+ 'application/sql',
+ 'application/zip',
+ 'image/svg+xml'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.generate_logical_model_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeModel,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/dataSources/{dataSourceId}/generateLogicalModel',
+ 'operation_id': 'generate_logical_model',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'data_source_id',
+ 'generate_ldm_request',
+ ],
+ 'required': [
+ 'data_source_id',
+ 'generate_ldm_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'data_source_id':
+ (str,),
+ 'generate_ldm_request':
+ (GenerateLdmRequest,),
+ },
+ 'attribute_map': {
+ 'data_source_id': 'dataSourceId',
+ },
+ 'location_map': {
+ 'data_source_id': 'path',
+ 'generate_ldm_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.get_data_source_schemata_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DataSourceSchemata,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/dataSources/{dataSourceId}/scanSchemata',
+ 'operation_id': 'get_data_source_schemata',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'data_source_id',
+ ],
+ 'required': [
+ 'data_source_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'data_source_id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('data_source_id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'data_source_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'data_source_id': 'dataSourceId',
+ },
+ 'location_map': {
+ 'data_source_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_dependent_entities_graph_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DependentEntitiesResponse,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/dependentEntitiesGraph',
+ 'operation_id': 'get_dependent_entities_graph',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_dependent_entities_graph_from_entry_points_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DependentEntitiesResponse,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/dependentEntitiesGraph',
+ 'operation_id': 'get_dependent_entities_graph_from_entry_points',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'dependent_entities_request',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'dependent_entities_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'dependent_entities_request':
+ (DependentEntitiesRequest,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'dependent_entities_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.get_tabular_export_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/export/tabular/{exportId}',
+ 'operation_id': 'get_tabular_export',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'export_id',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'export_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'export_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'export_id': 'exportId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'export_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+ 'text/csv',
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.particular_platform_usage_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([PlatformUsage],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/collectUsage',
+ 'operation_id': 'particular_platform_usage',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'platform_usage_request',
+ ],
+ 'required': [
+ 'platform_usage_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'platform_usage_request':
+ (PlatformUsageRequest,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'platform_usage_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.register_upload_notification_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/dataSources/{dataSourceId}/uploadNotification',
+ 'operation_id': 'register_upload_notification',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'data_source_id',
+ ],
+ 'required': [
+ 'data_source_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'data_source_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'data_source_id': 'dataSourceId',
+ },
+ 'location_map': {
+ 'data_source_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.resolve_all_entitlements_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([ApiEntitlement],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/resolveEntitlements',
+ 'operation_id': 'resolve_all_entitlements',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.resolve_all_settings_without_workspace_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([DeclarativeSetting],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/resolveSettings',
+ 'operation_id': 'resolve_all_settings_without_workspace',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.resolve_requested_entitlements_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([ApiEntitlement],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/resolveEntitlements',
+ 'operation_id': 'resolve_requested_entitlements',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'entitlements_request',
+ ],
+ 'required': [
+ 'entitlements_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'entitlements_request':
+ (EntitlementsRequest,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'entitlements_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.resolve_settings_without_workspace_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([DeclarativeSetting],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/resolveSettings',
+ 'operation_id': 'resolve_settings_without_workspace',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'resolve_settings_request',
+ ],
+ 'required': [
+ 'resolve_settings_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'resolve_settings_request':
+ (ResolveSettingsRequest,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'resolve_settings_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.retrieve_execution_metadata_endpoint = _Endpoint(
+ settings={
+ 'response_type': (ResultCacheMetadata,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId}/metadata',
+ 'operation_id': 'retrieve_execution_metadata',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'result_id',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'result_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'workspace_id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('workspace_id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'result_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'result_id': 'resultId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'result_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.retrieve_result_endpoint = _Endpoint(
+ settings={
+ 'response_type': (ExecutionResult,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId}',
+ 'operation_id': 'retrieve_result',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'result_id',
+ 'offset',
+ 'limit',
+ 'excluded_total_dimensions',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'result_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'workspace_id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('workspace_id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'result_id':
+ (str,),
+ 'offset':
+ ([int],),
+ 'limit':
+ ([int],),
+ 'excluded_total_dimensions':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'result_id': 'resultId',
+ 'offset': 'offset',
+ 'limit': 'limit',
+ 'excluded_total_dimensions': 'excludedTotalDimensions',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'result_id': 'path',
+ 'offset': 'query',
+ 'limit': 'query',
+ 'excluded_total_dimensions': 'query',
+ },
+ 'collection_format_map': {
+ 'offset': 'csv',
+ 'limit': 'csv',
+ 'excluded_total_dimensions': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.scan_data_source_endpoint = _Endpoint(
+ settings={
+ 'response_type': (ScanResultPdm,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/dataSources/{dataSourceId}/scan',
+ 'operation_id': 'scan_data_source',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'data_source_id',
+ 'scan_request',
+ ],
+ 'required': [
+ 'data_source_id',
+ 'scan_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'data_source_id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('data_source_id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'data_source_id':
+ (str,),
+ 'scan_request':
+ (ScanRequest,),
+ },
+ 'attribute_map': {
+ 'data_source_id': 'dataSourceId',
+ },
+ 'location_map': {
+ 'data_source_id': 'path',
+ 'scan_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.test_data_source_endpoint = _Endpoint(
+ settings={
+ 'response_type': (TestResponse,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/dataSources/{dataSourceId}/test',
+ 'operation_id': 'test_data_source',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'data_source_id',
+ 'test_request',
+ ],
+ 'required': [
+ 'data_source_id',
+ 'test_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'data_source_id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('data_source_id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'data_source_id':
+ (str,),
+ 'test_request':
+ (TestRequest,),
+ },
+ 'attribute_map': {
+ 'data_source_id': 'dataSourceId',
+ },
+ 'location_map': {
+ 'data_source_id': 'path',
+ 'test_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.test_data_source_definition_endpoint = _Endpoint(
+ settings={
+ 'response_type': (TestResponse,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/dataSource/test',
+ 'operation_id': 'test_data_source_definition',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'test_definition_request',
+ ],
+ 'required': [
+ 'test_definition_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'test_definition_request':
+ (TestDefinitionRequest,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'test_definition_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.workspace_resolve_all_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([DeclarativeSetting],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/resolveSettings',
+ 'operation_id': 'workspace_resolve_all_settings',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.workspace_resolve_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([DeclarativeSetting],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/resolveSettings',
+ 'operation_id': 'workspace_resolve_settings',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'resolve_settings_request',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'resolve_settings_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'resolve_settings_request':
+ (ResolveSettingsRequest,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'resolve_settings_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+
+ def all_platform_usage(
+ self,
+ **kwargs
+ ):
+ """Info about the platform usage. # noqa: E501
+
+ Provides information about platform usage, like amount of users, workspaces, ... # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.all_platform_usage(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [PlatformUsage]
+ 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.all_platform_usage_endpoint.call_with_http_info(**kwargs)
+
+ def compute_label_elements_post(
+ self,
+ workspace_id,
+ elements_request,
+ **kwargs
+ ):
+ """Listing of label values. The resulting data are limited by the static platform limit to the maximum of 10000 rows. # noqa: E501
+
+ Returns paged list of elements (values) of given label satisfying given filtering criteria. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.compute_label_elements_post(workspace_id, elements_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str): Workspace identifier
+ elements_request (ElementsRequest):
+
+ Keyword Args:
+ offset (int): Request page with this offset. Must be positive integer. The API is limited to the maximum of 10000 items. Therefore this parameter is limited to this number as well.. [optional] if omitted the server will use the default value of 0
+ limit (int): Return only this number of items. Must be positive integer. The API is limited to the maximum of 10000 items. Therefore this parameter is limited to this number as well.. [optional] if omitted the server will use the default value of 1000
+ skip_cache (bool): Ignore all caches during execution of current request.. [optional] if omitted the server will use the default value of False
+ _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:
+ ElementsResponse
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['elements_request'] = \
+ elements_request
+ return self.compute_label_elements_post_endpoint.call_with_http_info(**kwargs)
+
+ def compute_report(
+ self,
+ workspace_id,
+ afm_execution,
+ **kwargs
+ ):
+ """Executes analytical request and returns link to the result # noqa: E501
+
+ AFM is a combination of attributes, measures and filters that describe a query you want to execute. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.compute_report(workspace_id, afm_execution, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str): Workspace identifier
+ afm_execution (AfmExecution):
+
+ Keyword Args:
+ skip_cache (bool): Ignore all caches during execution of current request.. [optional] if omitted the server will use the default value of False
+ timestamp (str): [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:
+ AfmExecutionResponse
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['afm_execution'] = \
+ afm_execution
+ return self.compute_report_endpoint.call_with_http_info(**kwargs)
+
+ def compute_valid_objects(
+ self,
+ workspace_id,
+ afm_valid_objects_query,
+ **kwargs
+ ):
+ """Valid objects # noqa: E501
+
+ Returns list containing attributes, facts, or metrics, which can be added to given AFM while still keeping it computable. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.compute_valid_objects(workspace_id, afm_valid_objects_query, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str): Workspace identifier
+ afm_valid_objects_query (AfmValidObjectsQuery):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ AfmValidObjectsResponse
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['afm_valid_objects_query'] = \
+ afm_valid_objects_query
+ return self.compute_valid_objects_endpoint.call_with_http_info(**kwargs)
+
+ def create_tabular_export(
+ self,
+ workspace_id,
+ tabular_export_request,
+ **kwargs
+ ):
+ """Create tabular export request # noqa: E501
+
+ An tabular export job will be created based on the export request and put to queue to be executed. The result of the operation will be an exportResult identifier that will be assembled by the client into a url that can be polled. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_tabular_export(workspace_id, tabular_export_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ tabular_export_request (TabularExportRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ TabularExportResult
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['tabular_export_request'] = \
+ tabular_export_request
+ return self.create_tabular_export_endpoint.call_with_http_info(**kwargs)
+
+ def explain_afm(
+ self,
+ workspace_id,
+ afm_execution,
+ **kwargs
+ ):
+ """AFM explain resource. # noqa: E501
+
+ The resource provides static structures needed for investigation of a problem with given AFM. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.explain_afm(workspace_id, afm_execution, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str): Workspace identifier
+ afm_execution (AfmExecution):
+
+ Keyword Args:
+ explain_type (str): Requested explain type. If not specified all types are bundled in a ZIP archive. `MAQL` - MAQL Abstract Syntax Tree, execution dimensions and related info `GRPC_MODEL` - Datasets used in execution `WDF` - Workspace data filters in execution workspace context `QT` - Query Tree, created from MAQL AST using Logical Data Model, contains all information needed to generate SQL `QT_SVG` - Generated SVG image of the Query Tree `OPT_QT` - Optimized Query Tree `OPT_QT_SVG` - Generated SVG image of the Optimized Query Tree `SQL` - Final SQL to be executed. [optional]
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['afm_execution'] = \
+ afm_execution
+ return self.explain_afm_endpoint.call_with_http_info(**kwargs)
+
+ def generate_logical_model(
+ self,
+ data_source_id,
+ generate_ldm_request,
+ **kwargs
+ ):
+ """Generate logical data model (LDM) from physical data model (PDM) # noqa: E501
+
+ Generate logical data model (LDM) from physical data model (PDM) stored in data source. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.generate_logical_model(data_source_id, generate_ldm_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ data_source_id (str):
+ generate_ldm_request (GenerateLdmRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeModel
+ 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['data_source_id'] = \
+ data_source_id
+ kwargs['generate_ldm_request'] = \
+ generate_ldm_request
+ return self.generate_logical_model_endpoint.call_with_http_info(**kwargs)
+
+ def get_data_source_schemata(
+ self,
+ data_source_id,
+ **kwargs
+ ):
+ """Get a list of schema names of a database # noqa: E501
+
+ It scans a database and reads metadata. The result of the request contains a list of schema names of a database. # 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_data_source_schemata(data_source_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ data_source_id (str): Data source id
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DataSourceSchemata
+ 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['data_source_id'] = \
+ data_source_id
+ return self.get_data_source_schemata_endpoint.call_with_http_info(**kwargs)
+
+ def get_dependent_entities_graph(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """Computes the dependent entities graph # noqa: E501
+
+ Computes the dependent entities graph # 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_dependent_entities_graph(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DependentEntitiesResponse
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_dependent_entities_graph_endpoint.call_with_http_info(**kwargs)
+
+ def get_dependent_entities_graph_from_entry_points(
+ self,
+ workspace_id,
+ dependent_entities_request,
+ **kwargs
+ ):
+ """Computes the dependent entities graph from given entry points # noqa: E501
+
+ Computes the dependent entities graph from given entry points # 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_dependent_entities_graph_from_entry_points(workspace_id, dependent_entities_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ dependent_entities_request (DependentEntitiesRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DependentEntitiesResponse
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['dependent_entities_request'] = \
+ dependent_entities_request
+ return self.get_dependent_entities_graph_from_entry_points_endpoint.call_with_http_info(**kwargs)
+
+ def get_tabular_export(
+ self,
+ workspace_id,
+ export_id,
+ **kwargs
+ ):
+ """Retrieve exported files # noqa: E501
+
+ After clients creates a POST export request, the processing of it will start shortly asynchronously. To retrieve the result, client has to check periodically for the result on this endpoint. In case the result isn't ready yet, the service returns 202. If the result is ready, it returns 200 and octet stream of the result file with provided filename. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.get_tabular_export(workspace_id, export_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ export_id (str):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['export_id'] = \
+ export_id
+ return self.get_tabular_export_endpoint.call_with_http_info(**kwargs)
+
+ def particular_platform_usage(
+ self,
+ platform_usage_request,
+ **kwargs
+ ):
+ """Info about the platform usage for particular items. # noqa: E501
+
+ Provides information about platform usage, like amount of users, workspaces, ... # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.particular_platform_usage(platform_usage_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ platform_usage_request (PlatformUsageRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [PlatformUsage]
+ 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['platform_usage_request'] = \
+ platform_usage_request
+ return self.particular_platform_usage_endpoint.call_with_http_info(**kwargs)
+
+ def register_upload_notification(
+ self,
+ data_source_id,
+ **kwargs
+ ):
+ """Register an upload notification # noqa: E501
+
+ Notification sets up all reports to be computed again with new data. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.register_upload_notification(data_source_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ data_source_id (str):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['data_source_id'] = \
+ data_source_id
+ return self.register_upload_notification_endpoint.call_with_http_info(**kwargs)
+
+ def resolve_all_entitlements(
+ self,
+ **kwargs
+ ):
+ """Values for all public entitlements. # noqa: E501
+
+ Resolves values of available entitlements for the organization. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.resolve_all_entitlements(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [ApiEntitlement]
+ 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.resolve_all_entitlements_endpoint.call_with_http_info(**kwargs)
+
+ def resolve_all_settings_without_workspace(
+ self,
+ **kwargs
+ ):
+ """Values for all settings without workspace. # noqa: E501
+
+ Resolves values for all settings without workspace by current user, organization, or default settings. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.resolve_all_settings_without_workspace(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [DeclarativeSetting]
+ 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.resolve_all_settings_without_workspace_endpoint.call_with_http_info(**kwargs)
+
+ def resolve_requested_entitlements(
+ self,
+ entitlements_request,
+ **kwargs
+ ):
+ """Values for requested public entitlements. # noqa: E501
+
+ Resolves values for requested entitlements in the organization. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.resolve_requested_entitlements(entitlements_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ entitlements_request (EntitlementsRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [ApiEntitlement]
+ 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['entitlements_request'] = \
+ entitlements_request
+ return self.resolve_requested_entitlements_endpoint.call_with_http_info(**kwargs)
+
+ def resolve_settings_without_workspace(
+ self,
+ resolve_settings_request,
+ **kwargs
+ ):
+ """Values for selected settings without workspace. # noqa: E501
+
+ Resolves values for selected settings without workspace by current user, organization, or default settings. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.resolve_settings_without_workspace(resolve_settings_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ resolve_settings_request (ResolveSettingsRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [DeclarativeSetting]
+ 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['resolve_settings_request'] = \
+ resolve_settings_request
+ return self.resolve_settings_without_workspace_endpoint.call_with_http_info(**kwargs)
+
+ def retrieve_execution_metadata(
+ self,
+ workspace_id,
+ result_id,
+ **kwargs
+ ):
+ """Get a single execution result's metadata. # noqa: E501
+
+ The resource provides execution result's metadata as AFM and resultSpec used in execution request and an executionResponse # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.retrieve_execution_metadata(workspace_id, result_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str): Workspace identifier
+ result_id (str): Result ID
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ ResultCacheMetadata
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['result_id'] = \
+ result_id
+ return self.retrieve_execution_metadata_endpoint.call_with_http_info(**kwargs)
+
+ def retrieve_result(
+ self,
+ workspace_id,
+ result_id,
+ **kwargs
+ ):
+ """Get a single execution result # noqa: E501
+
+ Gets a single execution result. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.retrieve_result(workspace_id, result_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str): Workspace identifier
+ result_id (str): Result ID
+
+ Keyword Args:
+ offset ([int]): Request page with these offsets. Format is offset=1,2,3,... - one offset for each dimensions in ResultSpec from originating AFM.. [optional] if omitted the server will use the default value of []
+ limit ([int]): Return only this number of items. Format is limit=1,2,3,... - one limit for each dimensions in ResultSpec from originating AFM.. [optional] if omitted the server will use the default value of []
+ excluded_total_dimensions ([str]): Identifiers of the dimensions where grand total data should not be returned for this request. A grand total will not be returned if all of its totalDimensions are in excludedTotalDimensions.. [optional] if omitted the server will use the default value of []
+ _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:
+ ExecutionResult
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['result_id'] = \
+ result_id
+ return self.retrieve_result_endpoint.call_with_http_info(**kwargs)
+
+ def scan_data_source(
+ self,
+ data_source_id,
+ scan_request,
+ **kwargs
+ ):
+ """Scan a database to get a physical data model (PDM) # noqa: E501
+
+ It scans a database and transforms its metadata to a declarative definition of the physical data model (PDM). The result of the request contains the mentioned physical data model (PDM) of a database within warning, for example, about unsupported columns. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.scan_data_source(data_source_id, scan_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ data_source_id (str): Data source id
+ scan_request (ScanRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ ScanResultPdm
+ 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['data_source_id'] = \
+ data_source_id
+ kwargs['scan_request'] = \
+ scan_request
+ return self.scan_data_source_endpoint.call_with_http_info(**kwargs)
+
+ def test_data_source(
+ self,
+ data_source_id,
+ test_request,
+ **kwargs
+ ):
+ """Test data source connection by data source id # noqa: E501
+
+ Test if it is possible to connect to a database using an existing data source definition. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.test_data_source(data_source_id, test_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ data_source_id (str): Data source id
+ test_request (TestRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ TestResponse
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['data_source_id'] = \
+ data_source_id
+ kwargs['test_request'] = \
+ test_request
+ return self.test_data_source_endpoint.call_with_http_info(**kwargs)
+
+ def test_data_source_definition(
+ self,
+ test_definition_request,
+ **kwargs
+ ):
+ """Test connection by data source definition # noqa: E501
+
+ Test if it is possible to connect to a database using a connection provided by the data source definition in the request body. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.test_data_source_definition(test_definition_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ test_definition_request (TestDefinitionRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ TestResponse
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['test_definition_request'] = \
+ test_definition_request
+ return self.test_data_source_definition_endpoint.call_with_http_info(**kwargs)
+
+ def workspace_resolve_all_settings(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """Values for all settings. # noqa: E501
+
+ Resolves values for all settings in a workspace by current user, workspace, organization, or default settings. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.workspace_resolve_all_settings(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [DeclarativeSetting]
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.workspace_resolve_all_settings_endpoint.call_with_http_info(**kwargs)
+
+ def workspace_resolve_settings(
+ self,
+ workspace_id,
+ resolve_settings_request,
+ **kwargs
+ ):
+ """Values for selected settings. # noqa: E501
+
+ Resolves value for selected settings in a workspace by current user, workspace, organization, or default settings. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.workspace_resolve_settings(workspace_id, resolve_settings_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ resolve_settings_request (ResolveSettingsRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [DeclarativeSetting]
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['resolve_settings_request'] = \
+ resolve_settings_request
+ return self.workspace_resolve_settings_endpoint.call_with_http_info(**kwargs)
+
diff --git a/gooddata-api-client/gooddata_api_client/api/entities_api.py b/gooddata-api-client/gooddata_api_client/api/entities_api.py
new file mode 100644
index 000000000..82b74c63b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/api/entities_api.py
@@ -0,0 +1,19905 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.api_client import ApiClient, Endpoint as _Endpoint
+from gooddata_api_client.model_utils import ( # noqa: F401
+ check_allowed_values,
+ check_validations,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_and_convert_types
+)
+from gooddata_api_client.model.json_api_analytical_dashboard_in_document import JsonApiAnalyticalDashboardInDocument
+from gooddata_api_client.model.json_api_analytical_dashboard_out_document import JsonApiAnalyticalDashboardOutDocument
+from gooddata_api_client.model.json_api_analytical_dashboard_out_list import JsonApiAnalyticalDashboardOutList
+from gooddata_api_client.model.json_api_analytical_dashboard_patch_document import JsonApiAnalyticalDashboardPatchDocument
+from gooddata_api_client.model.json_api_api_token_in_document import JsonApiApiTokenInDocument
+from gooddata_api_client.model.json_api_api_token_out_document import JsonApiApiTokenOutDocument
+from gooddata_api_client.model.json_api_api_token_out_list import JsonApiApiTokenOutList
+from gooddata_api_client.model.json_api_attribute_out_document import JsonApiAttributeOutDocument
+from gooddata_api_client.model.json_api_attribute_out_list import JsonApiAttributeOutList
+from gooddata_api_client.model.json_api_color_palette_in_document import JsonApiColorPaletteInDocument
+from gooddata_api_client.model.json_api_color_palette_out_document import JsonApiColorPaletteOutDocument
+from gooddata_api_client.model.json_api_color_palette_out_list import JsonApiColorPaletteOutList
+from gooddata_api_client.model.json_api_color_palette_patch_document import JsonApiColorPalettePatchDocument
+from gooddata_api_client.model.json_api_cookie_security_configuration_in_document import JsonApiCookieSecurityConfigurationInDocument
+from gooddata_api_client.model.json_api_cookie_security_configuration_out_document import JsonApiCookieSecurityConfigurationOutDocument
+from gooddata_api_client.model.json_api_cookie_security_configuration_patch_document import JsonApiCookieSecurityConfigurationPatchDocument
+from gooddata_api_client.model.json_api_csp_directive_in_document import JsonApiCspDirectiveInDocument
+from gooddata_api_client.model.json_api_csp_directive_out_document import JsonApiCspDirectiveOutDocument
+from gooddata_api_client.model.json_api_csp_directive_out_list import JsonApiCspDirectiveOutList
+from gooddata_api_client.model.json_api_csp_directive_patch_document import JsonApiCspDirectivePatchDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_in_document import JsonApiDashboardPluginInDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_out_document import JsonApiDashboardPluginOutDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_out_list import JsonApiDashboardPluginOutList
+from gooddata_api_client.model.json_api_dashboard_plugin_patch_document import JsonApiDashboardPluginPatchDocument
+from gooddata_api_client.model.json_api_data_source_identifier_out_document import JsonApiDataSourceIdentifierOutDocument
+from gooddata_api_client.model.json_api_data_source_identifier_out_list import JsonApiDataSourceIdentifierOutList
+from gooddata_api_client.model.json_api_data_source_in_document import JsonApiDataSourceInDocument
+from gooddata_api_client.model.json_api_data_source_out_document import JsonApiDataSourceOutDocument
+from gooddata_api_client.model.json_api_data_source_out_list import JsonApiDataSourceOutList
+from gooddata_api_client.model.json_api_data_source_patch_document import JsonApiDataSourcePatchDocument
+from gooddata_api_client.model.json_api_data_source_table_out_document import JsonApiDataSourceTableOutDocument
+from gooddata_api_client.model.json_api_data_source_table_out_list import JsonApiDataSourceTableOutList
+from gooddata_api_client.model.json_api_dataset_out_document import JsonApiDatasetOutDocument
+from gooddata_api_client.model.json_api_dataset_out_list import JsonApiDatasetOutList
+from gooddata_api_client.model.json_api_entitlement_out_document import JsonApiEntitlementOutDocument
+from gooddata_api_client.model.json_api_entitlement_out_list import JsonApiEntitlementOutList
+from gooddata_api_client.model.json_api_fact_out_document import JsonApiFactOutDocument
+from gooddata_api_client.model.json_api_fact_out_list import JsonApiFactOutList
+from gooddata_api_client.model.json_api_filter_context_in_document import JsonApiFilterContextInDocument
+from gooddata_api_client.model.json_api_filter_context_out_document import JsonApiFilterContextOutDocument
+from gooddata_api_client.model.json_api_filter_context_out_list import JsonApiFilterContextOutList
+from gooddata_api_client.model.json_api_filter_context_patch_document import JsonApiFilterContextPatchDocument
+from gooddata_api_client.model.json_api_label_out_document import JsonApiLabelOutDocument
+from gooddata_api_client.model.json_api_label_out_list import JsonApiLabelOutList
+from gooddata_api_client.model.json_api_metric_in_document import JsonApiMetricInDocument
+from gooddata_api_client.model.json_api_metric_out_document import JsonApiMetricOutDocument
+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_organization_in_document import JsonApiOrganizationInDocument
+from gooddata_api_client.model.json_api_organization_out_document import JsonApiOrganizationOutDocument
+from gooddata_api_client.model.json_api_organization_patch_document import JsonApiOrganizationPatchDocument
+from gooddata_api_client.model.json_api_organization_setting_in_document import JsonApiOrganizationSettingInDocument
+from gooddata_api_client.model.json_api_organization_setting_out_document import JsonApiOrganizationSettingOutDocument
+from gooddata_api_client.model.json_api_organization_setting_out_list import JsonApiOrganizationSettingOutList
+from gooddata_api_client.model.json_api_organization_setting_patch_document import JsonApiOrganizationSettingPatchDocument
+from gooddata_api_client.model.json_api_theme_in_document import JsonApiThemeInDocument
+from gooddata_api_client.model.json_api_theme_out_document import JsonApiThemeOutDocument
+from gooddata_api_client.model.json_api_theme_out_list import JsonApiThemeOutList
+from gooddata_api_client.model.json_api_theme_patch_document import JsonApiThemePatchDocument
+from gooddata_api_client.model.json_api_user_group_in_document import JsonApiUserGroupInDocument
+from gooddata_api_client.model.json_api_user_group_out_document import JsonApiUserGroupOutDocument
+from gooddata_api_client.model.json_api_user_group_out_list import JsonApiUserGroupOutList
+from gooddata_api_client.model.json_api_user_group_patch_document import JsonApiUserGroupPatchDocument
+from gooddata_api_client.model.json_api_user_in_document import JsonApiUserInDocument
+from gooddata_api_client.model.json_api_user_out_document import JsonApiUserOutDocument
+from gooddata_api_client.model.json_api_user_out_list import JsonApiUserOutList
+from gooddata_api_client.model.json_api_user_patch_document import JsonApiUserPatchDocument
+from gooddata_api_client.model.json_api_user_setting_in_document import JsonApiUserSettingInDocument
+from gooddata_api_client.model.json_api_user_setting_out_document import JsonApiUserSettingOutDocument
+from gooddata_api_client.model.json_api_user_setting_out_list import JsonApiUserSettingOutList
+from gooddata_api_client.model.json_api_visualization_object_in_document import JsonApiVisualizationObjectInDocument
+from gooddata_api_client.model.json_api_visualization_object_out_document import JsonApiVisualizationObjectOutDocument
+from gooddata_api_client.model.json_api_visualization_object_out_list import JsonApiVisualizationObjectOutList
+from gooddata_api_client.model.json_api_visualization_object_patch_document import JsonApiVisualizationObjectPatchDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_in_document import JsonApiWorkspaceDataFilterInDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_out_document import JsonApiWorkspaceDataFilterOutDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_out_list import JsonApiWorkspaceDataFilterOutList
+from gooddata_api_client.model.json_api_workspace_data_filter_patch_document import JsonApiWorkspaceDataFilterPatchDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_document import JsonApiWorkspaceDataFilterSettingOutDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_list import JsonApiWorkspaceDataFilterSettingOutList
+from gooddata_api_client.model.json_api_workspace_in_document import JsonApiWorkspaceInDocument
+from gooddata_api_client.model.json_api_workspace_out_document import JsonApiWorkspaceOutDocument
+from gooddata_api_client.model.json_api_workspace_out_list import JsonApiWorkspaceOutList
+from gooddata_api_client.model.json_api_workspace_patch_document import JsonApiWorkspacePatchDocument
+from gooddata_api_client.model.json_api_workspace_setting_in_document import JsonApiWorkspaceSettingInDocument
+from gooddata_api_client.model.json_api_workspace_setting_out_document import JsonApiWorkspaceSettingOutDocument
+from gooddata_api_client.model.json_api_workspace_setting_out_list import JsonApiWorkspaceSettingOutList
+from gooddata_api_client.model.json_api_workspace_setting_patch_document import JsonApiWorkspaceSettingPatchDocument
+
+
+class EntitiesApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+ self.create_entity_analytical_dashboards_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiAnalyticalDashboardOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards',
+ 'operation_id': 'create_entity_analytical_dashboards',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'json_api_analytical_dashboard_in_document',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'json_api_analytical_dashboard_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "VISUALIZATIONOBJECTS": "visualizationObjects",
+ "ANALYTICALDASHBOARDS": "analyticalDashboards",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "FILTERCONTEXTS": "filterContexts",
+ "DASHBOARDPLUGINS": "dashboardPlugins",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'json_api_analytical_dashboard_in_document':
+ (JsonApiAnalyticalDashboardInDocument,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'json_api_analytical_dashboard_in_document': 'body',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_api_tokens_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiApiTokenOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/apiTokens',
+ 'operation_id': 'create_entity_api_tokens',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'json_api_api_token_in_document',
+ ],
+ 'required': [
+ 'user_id',
+ 'json_api_api_token_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'json_api_api_token_in_document':
+ (JsonApiApiTokenInDocument,),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'json_api_api_token_in_document': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_color_palettes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiColorPaletteOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/colorPalettes',
+ 'operation_id': 'create_entity_color_palettes',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'json_api_color_palette_in_document',
+ ],
+ 'required': [
+ 'json_api_color_palette_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'json_api_color_palette_in_document':
+ (JsonApiColorPaletteInDocument,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'json_api_color_palette_in_document': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_csp_directives_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiCspDirectiveOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/cspDirectives',
+ 'operation_id': 'create_entity_csp_directives',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'json_api_csp_directive_in_document',
+ ],
+ 'required': [
+ 'json_api_csp_directive_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'json_api_csp_directive_in_document':
+ (JsonApiCspDirectiveInDocument,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'json_api_csp_directive_in_document': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_dashboard_plugins_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDashboardPluginOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/dashboardPlugins',
+ 'operation_id': 'create_entity_dashboard_plugins',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'json_api_dashboard_plugin_in_document',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'json_api_dashboard_plugin_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'json_api_dashboard_plugin_in_document':
+ (JsonApiDashboardPluginInDocument,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'json_api_dashboard_plugin_in_document': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_data_sources_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDataSourceOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSources',
+ 'operation_id': 'create_entity_data_sources',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'json_api_data_source_in_document',
+ ],
+ 'required': [
+ 'json_api_data_source_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'json_api_data_source_in_document':
+ (JsonApiDataSourceInDocument,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'json_api_data_source_in_document': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_filter_contexts_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiFilterContextOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/filterContexts',
+ 'operation_id': 'create_entity_filter_contexts',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'json_api_filter_context_in_document',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'json_api_filter_context_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "ATTRIBUTES": "attributes",
+ "DATASETS": "datasets",
+ "LABELS": "labels",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'json_api_filter_context_in_document':
+ (JsonApiFilterContextInDocument,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'json_api_filter_context_in_document': 'body',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_metrics_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiMetricOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/metrics',
+ 'operation_id': 'create_entity_metrics',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'json_api_metric_in_document',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'json_api_metric_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'json_api_metric_in_document':
+ (JsonApiMetricInDocument,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'json_api_metric_in_document': 'body',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_organization_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiOrganizationSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/organizationSettings',
+ 'operation_id': 'create_entity_organization_settings',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'json_api_organization_setting_in_document',
+ ],
+ 'required': [
+ 'json_api_organization_setting_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'json_api_organization_setting_in_document':
+ (JsonApiOrganizationSettingInDocument,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'json_api_organization_setting_in_document': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_themes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiThemeOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/themes',
+ 'operation_id': 'create_entity_themes',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'json_api_theme_in_document',
+ ],
+ 'required': [
+ 'json_api_theme_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'json_api_theme_in_document':
+ (JsonApiThemeInDocument,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'json_api_theme_in_document': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_user_groups_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserGroupOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/userGroups',
+ 'operation_id': 'create_entity_user_groups',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'json_api_user_group_in_document',
+ 'include',
+ ],
+ 'required': [
+ 'json_api_user_group_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "PARENTS": "parents",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'json_api_user_group_in_document':
+ (JsonApiUserGroupInDocument,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'json_api_user_group_in_document': 'body',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_user_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/userSettings',
+ 'operation_id': 'create_entity_user_settings',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'json_api_user_setting_in_document',
+ ],
+ 'required': [
+ 'user_id',
+ 'json_api_user_setting_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'json_api_user_setting_in_document':
+ (JsonApiUserSettingInDocument,),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'json_api_user_setting_in_document': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_users_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users',
+ 'operation_id': 'create_entity_users',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'json_api_user_in_document',
+ 'include',
+ ],
+ 'required': [
+ 'json_api_user_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'json_api_user_in_document':
+ (JsonApiUserInDocument,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'json_api_user_in_document': 'body',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_visualization_objects_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiVisualizationObjectOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/visualizationObjects',
+ 'operation_id': 'create_entity_visualization_objects',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'json_api_visualization_object_in_document',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'json_api_visualization_object_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'json_api_visualization_object_in_document':
+ (JsonApiVisualizationObjectInDocument,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'json_api_visualization_object_in_document': 'body',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_workspace_data_filters_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceDataFilterOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters',
+ 'operation_id': 'create_entity_workspace_data_filters',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'json_api_workspace_data_filter_in_document',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'json_api_workspace_data_filter_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACEDATAFILTERSETTINGS": "workspaceDataFilterSettings",
+ "FILTERSETTINGS": "filterSettings",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'json_api_workspace_data_filter_in_document':
+ (JsonApiWorkspaceDataFilterInDocument,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'json_api_workspace_data_filter_in_document': 'body',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_workspace_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceSettings',
+ 'operation_id': 'create_entity_workspace_settings',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'json_api_workspace_setting_in_document',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'json_api_workspace_setting_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'json_api_workspace_setting_in_document':
+ (JsonApiWorkspaceSettingInDocument,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'json_api_workspace_setting_in_document': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.create_entity_workspaces_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces',
+ 'operation_id': 'create_entity_workspaces',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'json_api_workspace_in_document',
+ 'include',
+ ],
+ 'required': [
+ 'json_api_workspace_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACES": "workspaces",
+ "PARENT": "parent",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'json_api_workspace_in_document':
+ (JsonApiWorkspaceInDocument,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'json_api_workspace_in_document': 'body',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.delete_entity_analytical_dashboards_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId}',
+ 'operation_id': 'delete_entity_analytical_dashboards',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_api_tokens_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/apiTokens/{id}',
+ 'operation_id': 'delete_entity_api_tokens',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'id',
+ 'filter',
+ ],
+ 'required': [
+ 'user_id',
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_color_palettes_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/colorPalettes/{id}',
+ 'operation_id': 'delete_entity_color_palettes',
+ 'http_method': 'DELETE',
+ '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': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_csp_directives_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/cspDirectives/{id}',
+ 'operation_id': 'delete_entity_csp_directives',
+ 'http_method': 'DELETE',
+ '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': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_dashboard_plugins_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId}',
+ 'operation_id': 'delete_entity_dashboard_plugins',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_data_sources_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSources/{id}',
+ 'operation_id': 'delete_entity_data_sources',
+ 'http_method': 'DELETE',
+ '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': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_filter_contexts_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId}',
+ 'operation_id': 'delete_entity_filter_contexts',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_metrics_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/metrics/{objectId}',
+ 'operation_id': 'delete_entity_metrics',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_organization_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/organizationSettings/{id}',
+ 'operation_id': 'delete_entity_organization_settings',
+ 'http_method': 'DELETE',
+ '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': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_themes_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/themes/{id}',
+ 'operation_id': 'delete_entity_themes',
+ 'http_method': 'DELETE',
+ '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': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_user_groups_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/userGroups/{id}',
+ 'operation_id': 'delete_entity_user_groups',
+ 'http_method': 'DELETE',
+ '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': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_user_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/userSettings/{id}',
+ 'operation_id': 'delete_entity_user_settings',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'id',
+ 'filter',
+ ],
+ 'required': [
+ 'user_id',
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_users_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{id}',
+ 'operation_id': 'delete_entity_users',
+ 'http_method': 'DELETE',
+ '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': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_visualization_objects_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId}',
+ 'operation_id': 'delete_entity_visualization_objects',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_workspace_data_filters_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId}',
+ 'operation_id': 'delete_entity_workspace_data_filters',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_workspace_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId}',
+ 'operation_id': 'delete_entity_workspace_settings',
+ 'http_method': 'DELETE',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.delete_entity_workspaces_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{id}',
+ 'operation_id': 'delete_entity_workspaces',
+ 'http_method': 'DELETE',
+ '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': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_analytical_dashboards_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiAnalyticalDashboardOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards',
+ 'operation_id': 'get_all_entities_analytical_dashboards',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "VISUALIZATIONOBJECTS": "visualizationObjects",
+ "ANALYTICALDASHBOARDS": "analyticalDashboards",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "FILTERCONTEXTS": "filterContexts",
+ "DASHBOARDPLUGINS": "dashboardPlugins",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_api_tokens_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiApiTokenOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/apiTokens',
+ 'operation_id': 'get_all_entities_api_tokens',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [
+ 'user_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_attributes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiAttributeOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/attributes',
+ 'operation_id': 'get_all_entities_attributes',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "DATASETS": "datasets",
+ "LABELS": "labels",
+ "DATASET": "dataset",
+ "DEFAULTVIEW": "defaultView",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_color_palettes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiColorPaletteOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/colorPalettes',
+ 'operation_id': 'get_all_entities_color_palettes',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_csp_directives_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiCspDirectiveOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/cspDirectives',
+ 'operation_id': 'get_all_entities_csp_directives',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_dashboard_plugins_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDashboardPluginOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/dashboardPlugins',
+ 'operation_id': 'get_all_entities_dashboard_plugins',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_data_source_identifiers_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDataSourceIdentifierOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSourceIdentifiers',
+ 'operation_id': 'get_all_entities_data_source_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',): {
+
+ "PERMISSIONS": "permissions",
+ "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_data_source_tables_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDataSourceTableOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSources/{dataSourceId}/dataSourceTables',
+ 'operation_id': 'get_all_entities_data_source_tables',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'data_source_id',
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [
+ 'data_source_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'data_source_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'data_source_id': 'dataSourceId',
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'data_source_id': 'path',
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_data_sources_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDataSourceOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSources',
+ 'operation_id': 'get_all_entities_data_sources',
+ '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',): {
+
+ "PERMISSIONS": "permissions",
+ "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_datasets_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDatasetOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/datasets',
+ 'operation_id': 'get_all_entities_datasets',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "ATTRIBUTES": "attributes",
+ "FACTS": "facts",
+ "DATASETS": "datasets",
+ "REFERENCES": "references",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_entitlements_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiEntitlementOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/entitlements',
+ 'operation_id': 'get_all_entities_entitlements',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_facts_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiFactOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/facts',
+ 'operation_id': 'get_all_entities_facts',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "DATASETS": "datasets",
+ "DATASET": "dataset",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_filter_contexts_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiFilterContextOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/filterContexts',
+ 'operation_id': 'get_all_entities_filter_contexts',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "ATTRIBUTES": "attributes",
+ "DATASETS": "datasets",
+ "LABELS": "labels",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_labels_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiLabelOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/labels',
+ 'operation_id': 'get_all_entities_labels',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "ATTRIBUTES": "attributes",
+ "ATTRIBUTE": "attribute",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_metrics_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiMetricOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/metrics',
+ 'operation_id': 'get_all_entities_metrics',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_organization_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiOrganizationSettingOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/organizationSettings',
+ 'operation_id': 'get_all_entities_organization_settings',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_themes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiThemeOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/themes',
+ 'operation_id': 'get_all_entities_themes',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_user_groups_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserGroupOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/userGroups',
+ 'operation_id': 'get_all_entities_user_groups',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "PARENTS": "parents",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_user_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserSettingOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/userSettings',
+ 'operation_id': 'get_all_entities_user_settings',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [
+ 'user_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_users_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users',
+ 'operation_id': 'get_all_entities_users',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ },
+ 'location_map': {
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_visualization_objects_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiVisualizationObjectOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/visualizationObjects',
+ 'operation_id': 'get_all_entities_visualization_objects',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_workspace_data_filter_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceDataFilterSettingOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceDataFilterSettings',
+ 'operation_id': 'get_all_entities_workspace_data_filter_settings',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "WORKSPACEDATAFILTERS": "workspaceDataFilters",
+ "WORKSPACEDATAFILTER": "workspaceDataFilter",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_workspace_data_filters_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceDataFilterOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters',
+ 'operation_id': 'get_all_entities_workspace_data_filters',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ ('include',): {
+
+ "WORKSPACEDATAFILTERSETTINGS": "workspaceDataFilterSettings",
+ "FILTERSETTINGS": "filterSettings",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_workspace_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceSettingOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceSettings',
+ 'operation_id': 'get_all_entities_workspace_settings',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'origin',
+ 'filter',
+ 'page',
+ 'size',
+ 'sort',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'origin',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('origin',): {
+
+ "ALL": "ALL",
+ "PARENTS": "PARENTS",
+ "NATIVE": "NATIVE"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'origin':
+ (str,),
+ 'filter':
+ (str,),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'origin': 'origin',
+ 'filter': 'filter',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'origin': 'query',
+ 'filter': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'sort': 'multi',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_entities_workspaces_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceOutList,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces',
+ 'operation_id': 'get_all_entities_workspaces',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'filter',
+ 'include',
+ 'page',
+ 'size',
+ 'sort',
+ 'meta_include',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ 'meta_include',
+ ],
+ 'validation': [
+ 'meta_include',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('meta_include',): {
+
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACES": "workspaces",
+ "PARENT": "parent",
+ "ALL": "ALL"
+ },
+ ('meta_include',): {
+
+ "CONFIG": "config",
+ "PERMISSIONS": "permissions",
+ "ALL": "all",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'page':
+ (int,),
+ 'size':
+ (int,),
+ 'sort':
+ ([str],),
+ 'meta_include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'filter': 'filter',
+ 'include': 'include',
+ 'page': 'page',
+ 'size': 'size',
+ 'sort': 'sort',
+ 'meta_include': 'metaInclude',
+ },
+ 'location_map': {
+ 'filter': 'query',
+ 'include': 'query',
+ 'page': 'query',
+ 'size': 'query',
+ 'sort': 'query',
+ 'meta_include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'sort': 'multi',
+ 'meta_include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_all_options_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/options',
+ 'operation_id': 'get_all_options',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_data_source_drivers_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/options/availableDrivers',
+ 'operation_id': 'get_data_source_drivers',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_analytical_dashboards_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiAnalyticalDashboardOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId}',
+ 'operation_id': 'get_entity_analytical_dashboards',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "VISUALIZATIONOBJECTS": "visualizationObjects",
+ "ANALYTICALDASHBOARDS": "analyticalDashboards",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "FILTERCONTEXTS": "filterContexts",
+ "DASHBOARDPLUGINS": "dashboardPlugins",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_api_tokens_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiApiTokenOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/apiTokens/{id}',
+ 'operation_id': 'get_entity_api_tokens',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'id',
+ 'filter',
+ ],
+ 'required': [
+ 'user_id',
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_attributes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiAttributeOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/attributes/{objectId}',
+ 'operation_id': 'get_entity_attributes',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "DATASETS": "datasets",
+ "LABELS": "labels",
+ "DATASET": "dataset",
+ "DEFAULTVIEW": "defaultView",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_color_palettes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiColorPaletteOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/colorPalettes/{id}',
+ 'operation_id': 'get_entity_color_palettes',
+ '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_cookie_security_configurations_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiCookieSecurityConfigurationOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/admin/cookieSecurityConfigurations/{id}',
+ 'operation_id': 'get_entity_cookie_security_configurations',
+ '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_csp_directives_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiCspDirectiveOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/cspDirectives/{id}',
+ 'operation_id': 'get_entity_csp_directives',
+ '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_dashboard_plugins_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDashboardPluginOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId}',
+ 'operation_id': 'get_entity_dashboard_plugins',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_data_source_identifiers_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDataSourceIdentifierOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSourceIdentifiers/{id}',
+ 'operation_id': 'get_entity_data_source_identifiers',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'filter',
+ 'meta_include',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'meta_include',
+ ],
+ 'validation': [
+ 'id',
+ 'meta_include',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('meta_include',): {
+
+ },
+ },
+ 'allowed_values': {
+ ('meta_include',): {
+
+ "PERMISSIONS": "permissions",
+ "ALL": "all",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ 'meta_include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'meta_include': 'metaInclude',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'filter': 'query',
+ 'meta_include': 'query',
+ },
+ 'collection_format_map': {
+ 'meta_include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_data_source_tables_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDataSourceTableOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSources/{dataSourceId}/dataSourceTables/{id}',
+ 'operation_id': 'get_entity_data_source_tables',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'data_source_id',
+ 'id',
+ 'filter',
+ ],
+ 'required': [
+ 'data_source_id',
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'data_source_id':
+ (str,),
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'data_source_id': 'dataSourceId',
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'data_source_id': 'path',
+ 'id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_data_sources_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDataSourceOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSources/{id}',
+ 'operation_id': 'get_entity_data_sources',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'filter',
+ 'meta_include',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'meta_include',
+ ],
+ 'validation': [
+ 'id',
+ 'meta_include',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('meta_include',): {
+
+ },
+ },
+ 'allowed_values': {
+ ('meta_include',): {
+
+ "PERMISSIONS": "permissions",
+ "ALL": "all",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ 'meta_include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'meta_include': 'metaInclude',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'filter': 'query',
+ 'meta_include': 'query',
+ },
+ 'collection_format_map': {
+ 'meta_include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_datasets_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDatasetOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/datasets/{objectId}',
+ 'operation_id': 'get_entity_datasets',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "ATTRIBUTES": "attributes",
+ "FACTS": "facts",
+ "DATASETS": "datasets",
+ "REFERENCES": "references",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_entitlements_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiEntitlementOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/entitlements/{id}',
+ 'operation_id': 'get_entity_entitlements',
+ '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_facts_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiFactOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/facts/{objectId}',
+ 'operation_id': 'get_entity_facts',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "DATASETS": "datasets",
+ "DATASET": "dataset",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_filter_contexts_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiFilterContextOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId}',
+ 'operation_id': 'get_entity_filter_contexts',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "ATTRIBUTES": "attributes",
+ "DATASETS": "datasets",
+ "LABELS": "labels",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_labels_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiLabelOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/labels/{objectId}',
+ 'operation_id': 'get_entity_labels',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "ATTRIBUTES": "attributes",
+ "ATTRIBUTE": "attribute",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_metrics_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiMetricOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/metrics/{objectId}',
+ 'operation_id': 'get_entity_metrics',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_organization_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiOrganizationSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/organizationSettings/{id}',
+ 'operation_id': 'get_entity_organization_settings',
+ '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_organizations_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiOrganizationOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/admin/organizations/{id}',
+ 'operation_id': 'get_entity_organizations',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'filter',
+ 'include',
+ 'meta_include',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ 'meta_include',
+ ],
+ 'validation': [
+ 'id',
+ 'meta_include',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('meta_include',): {
+
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERS": "users",
+ "USERGROUPS": "userGroups",
+ "BOOTSTRAPUSER": "bootstrapUser",
+ "BOOTSTRAPUSERGROUP": "bootstrapUserGroup",
+ "ALL": "ALL"
+ },
+ ('meta_include',): {
+
+ "PERMISSIONS": "permissions",
+ "ALL": "all",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'meta_include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'meta_include': 'metaInclude',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'meta_include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'meta_include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_themes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiThemeOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/themes/{id}',
+ 'operation_id': 'get_entity_themes',
+ '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_user_groups_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserGroupOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/userGroups/{id}',
+ 'operation_id': 'get_entity_user_groups',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "PARENTS": "parents",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_user_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/userSettings/{id}',
+ 'operation_id': 'get_entity_user_settings',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'id',
+ 'filter',
+ ],
+ 'required': [
+ 'user_id',
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'id': 'path',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_users_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{id}',
+ 'operation_id': 'get_entity_users',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_visualization_objects_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiVisualizationObjectOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId}',
+ 'operation_id': 'get_entity_visualization_objects',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_workspace_data_filter_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceDataFilterSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceDataFilterSettings/{objectId}',
+ 'operation_id': 'get_entity_workspace_data_filter_settings',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACEDATAFILTERS": "workspaceDataFilters",
+ "WORKSPACEDATAFILTER": "workspaceDataFilter",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_workspace_data_filters_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceDataFilterOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId}',
+ 'operation_id': 'get_entity_workspace_data_filters',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'include',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACEDATAFILTERSETTINGS": "workspaceDataFilterSettings",
+ "FILTERSETTINGS": "filterSettings",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_workspace_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId}',
+ 'operation_id': 'get_entity_workspace_settings',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'filter',
+ 'x_gdc_validate_relations',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'filter':
+ (str,),
+ 'x_gdc_validate_relations':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'x_gdc_validate_relations': 'X-GDC-VALIDATE-RELATIONS',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'filter': 'query',
+ 'x_gdc_validate_relations': 'header',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_entity_workspaces_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{id}',
+ 'operation_id': 'get_entity_workspaces',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'filter',
+ 'include',
+ 'meta_include',
+ ],
+ 'required': [
+ 'id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ 'meta_include',
+ ],
+ 'validation': [
+ 'id',
+ 'meta_include',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('meta_include',): {
+
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACES": "workspaces",
+ "PARENT": "parent",
+ "ALL": "ALL"
+ },
+ ('meta_include',): {
+
+ "CONFIG": "config",
+ "PERMISSIONS": "permissions",
+ "ALL": "all",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ 'meta_include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ 'meta_include': 'metaInclude',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'filter': 'query',
+ 'include': 'query',
+ 'meta_include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ 'meta_include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_organization_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/organization',
+ 'operation_id': 'get_organization',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'meta_include',
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'meta_include',
+ ],
+ 'validation': [
+ 'meta_include',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('meta_include',): {
+
+ },
+ },
+ 'allowed_values': {
+ ('meta_include',): {
+
+ "PERMISSIONS": "permissions",
+ "ALL": "all"
+ },
+ },
+ 'openapi_types': {
+ 'meta_include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'meta_include': 'metaInclude',
+ },
+ 'location_map': {
+ 'meta_include': 'query',
+ },
+ 'collection_format_map': {
+ 'meta_include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.patch_entity_analytical_dashboards_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiAnalyticalDashboardOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId}',
+ 'operation_id': 'patch_entity_analytical_dashboards',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_analytical_dashboard_patch_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_analytical_dashboard_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "VISUALIZATIONOBJECTS": "visualizationObjects",
+ "ANALYTICALDASHBOARDS": "analyticalDashboards",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "FILTERCONTEXTS": "filterContexts",
+ "DASHBOARDPLUGINS": "dashboardPlugins",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_analytical_dashboard_patch_document':
+ (JsonApiAnalyticalDashboardPatchDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_analytical_dashboard_patch_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_color_palettes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiColorPaletteOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/colorPalettes/{id}',
+ 'operation_id': 'patch_entity_color_palettes',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_color_palette_patch_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_color_palette_patch_document',
+ ],
+ '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,),
+ 'json_api_color_palette_patch_document':
+ (JsonApiColorPalettePatchDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_color_palette_patch_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_cookie_security_configurations_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiCookieSecurityConfigurationOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/admin/cookieSecurityConfigurations/{id}',
+ 'operation_id': 'patch_entity_cookie_security_configurations',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_cookie_security_configuration_patch_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_cookie_security_configuration_patch_document',
+ ],
+ '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,),
+ 'json_api_cookie_security_configuration_patch_document':
+ (JsonApiCookieSecurityConfigurationPatchDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_cookie_security_configuration_patch_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_csp_directives_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiCspDirectiveOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/cspDirectives/{id}',
+ 'operation_id': 'patch_entity_csp_directives',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_csp_directive_patch_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_csp_directive_patch_document',
+ ],
+ '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,),
+ 'json_api_csp_directive_patch_document':
+ (JsonApiCspDirectivePatchDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_csp_directive_patch_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_dashboard_plugins_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDashboardPluginOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId}',
+ 'operation_id': 'patch_entity_dashboard_plugins',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_dashboard_plugin_patch_document',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_dashboard_plugin_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_dashboard_plugin_patch_document':
+ (JsonApiDashboardPluginPatchDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_dashboard_plugin_patch_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_data_sources_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDataSourceOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSources/{id}',
+ 'operation_id': 'patch_entity_data_sources',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_data_source_patch_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_data_source_patch_document',
+ ],
+ '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,),
+ 'json_api_data_source_patch_document':
+ (JsonApiDataSourcePatchDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_data_source_patch_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_filter_contexts_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiFilterContextOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId}',
+ 'operation_id': 'patch_entity_filter_contexts',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_filter_context_patch_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_filter_context_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "ATTRIBUTES": "attributes",
+ "DATASETS": "datasets",
+ "LABELS": "labels",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_filter_context_patch_document':
+ (JsonApiFilterContextPatchDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_filter_context_patch_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_metrics_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiMetricOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/metrics/{objectId}',
+ 'operation_id': 'patch_entity_metrics',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_metric_patch_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_metric_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_metric_patch_document':
+ (JsonApiMetricPatchDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_metric_patch_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_organization_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiOrganizationSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/organizationSettings/{id}',
+ 'operation_id': 'patch_entity_organization_settings',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_organization_setting_patch_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_organization_setting_patch_document',
+ ],
+ '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,),
+ 'json_api_organization_setting_patch_document':
+ (JsonApiOrganizationSettingPatchDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_organization_setting_patch_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_organizations_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiOrganizationOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/admin/organizations/{id}',
+ 'operation_id': 'patch_entity_organizations',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_organization_patch_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_organization_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERS": "users",
+ "USERGROUPS": "userGroups",
+ "BOOTSTRAPUSER": "bootstrapUser",
+ "BOOTSTRAPUSERGROUP": "bootstrapUserGroup",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'json_api_organization_patch_document':
+ (JsonApiOrganizationPatchDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_organization_patch_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_themes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiThemeOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/themes/{id}',
+ 'operation_id': 'patch_entity_themes',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_theme_patch_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_theme_patch_document',
+ ],
+ '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,),
+ 'json_api_theme_patch_document':
+ (JsonApiThemePatchDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_theme_patch_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_user_groups_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserGroupOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/userGroups/{id}',
+ 'operation_id': 'patch_entity_user_groups',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_user_group_patch_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_user_group_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "PARENTS": "parents",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'json_api_user_group_patch_document':
+ (JsonApiUserGroupPatchDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_user_group_patch_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_users_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{id}',
+ 'operation_id': 'patch_entity_users',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_user_patch_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_user_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'json_api_user_patch_document':
+ (JsonApiUserPatchDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_user_patch_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_visualization_objects_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiVisualizationObjectOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId}',
+ 'operation_id': 'patch_entity_visualization_objects',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_visualization_object_patch_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_visualization_object_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_visualization_object_patch_document':
+ (JsonApiVisualizationObjectPatchDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_visualization_object_patch_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_workspace_data_filters_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceDataFilterOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId}',
+ 'operation_id': 'patch_entity_workspace_data_filters',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_workspace_data_filter_patch_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_workspace_data_filter_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACEDATAFILTERSETTINGS": "workspaceDataFilterSettings",
+ "FILTERSETTINGS": "filterSettings",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_workspace_data_filter_patch_document':
+ (JsonApiWorkspaceDataFilterPatchDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_workspace_data_filter_patch_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_workspace_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId}',
+ 'operation_id': 'patch_entity_workspace_settings',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_workspace_setting_patch_document',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_workspace_setting_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_workspace_setting_patch_document':
+ (JsonApiWorkspaceSettingPatchDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_workspace_setting_patch_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.patch_entity_workspaces_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{id}',
+ 'operation_id': 'patch_entity_workspaces',
+ 'http_method': 'PATCH',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_workspace_patch_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_workspace_patch_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACES": "workspaces",
+ "PARENT": "parent",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'json_api_workspace_patch_document':
+ (JsonApiWorkspacePatchDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_workspace_patch_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_analytical_dashboards_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiAnalyticalDashboardOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId}',
+ 'operation_id': 'update_entity_analytical_dashboards',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_analytical_dashboard_in_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_analytical_dashboard_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "VISUALIZATIONOBJECTS": "visualizationObjects",
+ "ANALYTICALDASHBOARDS": "analyticalDashboards",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "FILTERCONTEXTS": "filterContexts",
+ "DASHBOARDPLUGINS": "dashboardPlugins",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_analytical_dashboard_in_document':
+ (JsonApiAnalyticalDashboardInDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_analytical_dashboard_in_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_api_tokens_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiApiTokenOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/apiTokens/{id}',
+ 'operation_id': 'update_entity_api_tokens',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'id',
+ 'json_api_api_token_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'user_id',
+ 'id',
+ 'json_api_api_token_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'id':
+ (str,),
+ 'json_api_api_token_in_document':
+ (JsonApiApiTokenInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'id': 'path',
+ 'json_api_api_token_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_color_palettes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiColorPaletteOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/colorPalettes/{id}',
+ 'operation_id': 'update_entity_color_palettes',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_color_palette_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_color_palette_in_document',
+ ],
+ '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,),
+ 'json_api_color_palette_in_document':
+ (JsonApiColorPaletteInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_color_palette_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_cookie_security_configurations_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiCookieSecurityConfigurationOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/admin/cookieSecurityConfigurations/{id}',
+ 'operation_id': 'update_entity_cookie_security_configurations',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_cookie_security_configuration_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_cookie_security_configuration_in_document',
+ ],
+ '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,),
+ 'json_api_cookie_security_configuration_in_document':
+ (JsonApiCookieSecurityConfigurationInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_cookie_security_configuration_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_csp_directives_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiCspDirectiveOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/cspDirectives/{id}',
+ 'operation_id': 'update_entity_csp_directives',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_csp_directive_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_csp_directive_in_document',
+ ],
+ '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,),
+ 'json_api_csp_directive_in_document':
+ (JsonApiCspDirectiveInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_csp_directive_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_dashboard_plugins_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDashboardPluginOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/dashboardPlugins/{objectId}',
+ 'operation_id': 'update_entity_dashboard_plugins',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_dashboard_plugin_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_dashboard_plugin_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_dashboard_plugin_in_document':
+ (JsonApiDashboardPluginInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_dashboard_plugin_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_data_sources_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiDataSourceOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/dataSources/{id}',
+ 'operation_id': 'update_entity_data_sources',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_data_source_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_data_source_in_document',
+ ],
+ '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,),
+ 'json_api_data_source_in_document':
+ (JsonApiDataSourceInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_data_source_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_filter_contexts_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiFilterContextOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/filterContexts/{objectId}',
+ 'operation_id': 'update_entity_filter_contexts',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_filter_context_in_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_filter_context_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "ATTRIBUTES": "attributes",
+ "DATASETS": "datasets",
+ "LABELS": "labels",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_filter_context_in_document':
+ (JsonApiFilterContextInDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_filter_context_in_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_metrics_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiMetricOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/metrics/{objectId}',
+ 'operation_id': 'update_entity_metrics',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_metric_in_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_metric_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_metric_in_document':
+ (JsonApiMetricInDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_metric_in_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_organization_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiOrganizationSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/organizationSettings/{id}',
+ 'operation_id': 'update_entity_organization_settings',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_organization_setting_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_organization_setting_in_document',
+ ],
+ '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,),
+ 'json_api_organization_setting_in_document':
+ (JsonApiOrganizationSettingInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_organization_setting_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_organizations_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiOrganizationOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/admin/organizations/{id}',
+ 'operation_id': 'update_entity_organizations',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_organization_in_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_organization_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERS": "users",
+ "USERGROUPS": "userGroups",
+ "BOOTSTRAPUSER": "bootstrapUser",
+ "BOOTSTRAPUSERGROUP": "bootstrapUserGroup",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'json_api_organization_in_document':
+ (JsonApiOrganizationInDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_organization_in_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_themes_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiThemeOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/themes/{id}',
+ 'operation_id': 'update_entity_themes',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_theme_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_theme_in_document',
+ ],
+ '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,),
+ 'json_api_theme_in_document':
+ (JsonApiThemeInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_theme_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_user_groups_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserGroupOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/userGroups/{id}',
+ 'operation_id': 'update_entity_user_groups',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_user_group_in_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_user_group_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "PARENTS": "parents",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'json_api_user_group_in_document':
+ (JsonApiUserGroupInDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_user_group_in_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_user_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{userId}/userSettings/{id}',
+ 'operation_id': 'update_entity_user_settings',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'user_id',
+ 'id',
+ 'json_api_user_setting_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'user_id',
+ 'id',
+ 'json_api_user_setting_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'user_id':
+ (str,),
+ 'id':
+ (str,),
+ 'json_api_user_setting_in_document':
+ (JsonApiUserSettingInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'user_id': 'userId',
+ 'id': 'id',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'user_id': 'path',
+ 'id': 'path',
+ 'json_api_user_setting_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_users_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiUserOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/users/{id}',
+ 'operation_id': 'update_entity_users',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_user_in_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_user_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "USERGROUPS": "userGroups",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'json_api_user_in_document':
+ (JsonApiUserInDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_user_in_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_visualization_objects_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiVisualizationObjectOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/visualizationObjects/{objectId}',
+ 'operation_id': 'update_entity_visualization_objects',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_visualization_object_in_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_visualization_object_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "FACTS": "facts",
+ "ATTRIBUTES": "attributes",
+ "LABELS": "labels",
+ "METRICS": "metrics",
+ "DATASETS": "datasets",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_visualization_object_in_document':
+ (JsonApiVisualizationObjectInDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_visualization_object_in_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_workspace_data_filters_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceDataFilterOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId}',
+ 'operation_id': 'update_entity_workspace_data_filters',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_workspace_data_filter_in_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_workspace_data_filter_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACEDATAFILTERSETTINGS": "workspaceDataFilterSettings",
+ "FILTERSETTINGS": "filterSettings",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_workspace_data_filter_in_document':
+ (JsonApiWorkspaceDataFilterInDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_workspace_data_filter_in_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_workspace_settings_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceSettingOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{workspaceId}/workspaceSettings/{objectId}',
+ 'operation_id': 'update_entity_workspace_settings',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_workspace_setting_in_document',
+ 'filter',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'object_id',
+ 'json_api_workspace_setting_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'object_id':
+ (str,),
+ 'json_api_workspace_setting_in_document':
+ (JsonApiWorkspaceSettingInDocument,),
+ 'filter':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'object_id': 'objectId',
+ 'filter': 'filter',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'object_id': 'path',
+ 'json_api_workspace_setting_in_document': 'body',
+ 'filter': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.update_entity_workspaces_endpoint = _Endpoint(
+ settings={
+ 'response_type': (JsonApiWorkspaceOutDocument,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/entities/workspaces/{id}',
+ 'operation_id': 'update_entity_workspaces',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'id',
+ 'json_api_workspace_in_document',
+ 'filter',
+ 'include',
+ ],
+ 'required': [
+ 'id',
+ 'json_api_workspace_in_document',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ 'include',
+ ],
+ 'validation': [
+ 'id',
+ ]
+ },
+ root_map={
+ 'validations': {
+ ('id',): {
+
+ 'regex': {
+ 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ },
+ 'allowed_values': {
+ ('include',): {
+
+ "WORKSPACES": "workspaces",
+ "PARENT": "parent",
+ "ALL": "ALL"
+ },
+ },
+ 'openapi_types': {
+ 'id':
+ (str,),
+ 'json_api_workspace_in_document':
+ (JsonApiWorkspaceInDocument,),
+ 'filter':
+ (str,),
+ 'include':
+ ([str],),
+ },
+ 'attribute_map': {
+ 'id': 'id',
+ 'filter': 'filter',
+ 'include': 'include',
+ },
+ 'location_map': {
+ 'id': 'path',
+ 'json_api_workspace_in_document': 'body',
+ 'filter': 'query',
+ 'include': 'query',
+ },
+ 'collection_format_map': {
+ 'include': 'csv',
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/vnd.gooddata.api+json'
+ ],
+ 'content_type': [
+ 'application/vnd.gooddata.api+json'
+ ]
+ },
+ api_client=api_client
+ )
+
+ def create_entity_analytical_dashboards(
+ self,
+ workspace_id,
+ json_api_analytical_dashboard_in_document,
+ **kwargs
+ ):
+ """create_entity_analytical_dashboards # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_analytical_dashboards(workspace_id, json_api_analytical_dashboard_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ json_api_analytical_dashboard_in_document (JsonApiAnalyticalDashboardInDocument):
+
+ Keyword Args:
+ include ([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]
+ _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:
+ JsonApiAnalyticalDashboardOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['json_api_analytical_dashboard_in_document'] = \
+ json_api_analytical_dashboard_in_document
+ return self.create_entity_analytical_dashboards_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_api_tokens(
+ self,
+ user_id,
+ json_api_api_token_in_document,
+ **kwargs
+ ):
+ """create_entity_api_tokens # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_api_tokens(user_id, json_api_api_token_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_id (str):
+ json_api_api_token_in_document (JsonApiApiTokenInDocument):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ JsonApiApiTokenOutDocument
+ 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['user_id'] = \
+ user_id
+ kwargs['json_api_api_token_in_document'] = \
+ json_api_api_token_in_document
+ return self.create_entity_api_tokens_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_color_palettes(
+ self,
+ json_api_color_palette_in_document,
+ **kwargs
+ ):
+ """create_entity_color_palettes # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_color_palettes(json_api_color_palette_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ json_api_color_palette_in_document (JsonApiColorPaletteInDocument):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ JsonApiColorPaletteOutDocument
+ 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['json_api_color_palette_in_document'] = \
+ json_api_color_palette_in_document
+ return self.create_entity_color_palettes_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_csp_directives(
+ self,
+ json_api_csp_directive_in_document,
+ **kwargs
+ ):
+ """create_entity_csp_directives # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_csp_directives(json_api_csp_directive_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ json_api_csp_directive_in_document (JsonApiCspDirectiveInDocument):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ JsonApiCspDirectiveOutDocument
+ 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['json_api_csp_directive_in_document'] = \
+ json_api_csp_directive_in_document
+ return self.create_entity_csp_directives_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_dashboard_plugins(
+ self,
+ workspace_id,
+ json_api_dashboard_plugin_in_document,
+ **kwargs
+ ):
+ """create_entity_dashboard_plugins # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_dashboard_plugins(workspace_id, json_api_dashboard_plugin_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ json_api_dashboard_plugin_in_document (JsonApiDashboardPluginInDocument):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ JsonApiDashboardPluginOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['json_api_dashboard_plugin_in_document'] = \
+ json_api_dashboard_plugin_in_document
+ return self.create_entity_dashboard_plugins_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_data_sources(
+ self,
+ json_api_data_source_in_document,
+ **kwargs
+ ):
+ """create_entity_data_sources # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_data_sources(json_api_data_source_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ json_api_data_source_in_document (JsonApiDataSourceInDocument):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ JsonApiDataSourceOutDocument
+ 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['json_api_data_source_in_document'] = \
+ json_api_data_source_in_document
+ return self.create_entity_data_sources_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_filter_contexts(
+ self,
+ workspace_id,
+ json_api_filter_context_in_document,
+ **kwargs
+ ):
+ """create_entity_filter_contexts # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_filter_contexts(workspace_id, json_api_filter_context_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ json_api_filter_context_in_document (JsonApiFilterContextInDocument):
+
+ Keyword Args:
+ include ([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]
+ _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:
+ JsonApiFilterContextOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['json_api_filter_context_in_document'] = \
+ json_api_filter_context_in_document
+ return self.create_entity_filter_contexts_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_metrics(
+ self,
+ workspace_id,
+ json_api_metric_in_document,
+ **kwargs
+ ):
+ """create_entity_metrics # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_metrics(workspace_id, json_api_metric_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ json_api_metric_in_document (JsonApiMetricInDocument):
+
+ Keyword Args:
+ include ([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]
+ _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:
+ JsonApiMetricOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['json_api_metric_in_document'] = \
+ json_api_metric_in_document
+ return self.create_entity_metrics_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_organization_settings(
+ self,
+ json_api_organization_setting_in_document,
+ **kwargs
+ ):
+ """create_entity_organization_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_organization_settings(json_api_organization_setting_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ json_api_organization_setting_in_document (JsonApiOrganizationSettingInDocument):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ JsonApiOrganizationSettingOutDocument
+ 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['json_api_organization_setting_in_document'] = \
+ json_api_organization_setting_in_document
+ return self.create_entity_organization_settings_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_themes(
+ self,
+ json_api_theme_in_document,
+ **kwargs
+ ):
+ """create_entity_themes # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_themes(json_api_theme_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ json_api_theme_in_document (JsonApiThemeInDocument):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ JsonApiThemeOutDocument
+ 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['json_api_theme_in_document'] = \
+ json_api_theme_in_document
+ return self.create_entity_themes_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_user_groups(
+ self,
+ json_api_user_group_in_document,
+ **kwargs
+ ):
+ """create_entity_user_groups # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_user_groups(json_api_user_group_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ json_api_user_group_in_document (JsonApiUserGroupInDocument):
+
+ Keyword Args:
+ include ([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]
+ _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:
+ JsonApiUserGroupOutDocument
+ 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['json_api_user_group_in_document'] = \
+ json_api_user_group_in_document
+ return self.create_entity_user_groups_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_user_settings(
+ self,
+ user_id,
+ json_api_user_setting_in_document,
+ **kwargs
+ ):
+ """create_entity_user_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_user_settings(user_id, json_api_user_setting_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_id (str):
+ json_api_user_setting_in_document (JsonApiUserSettingInDocument):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ JsonApiUserSettingOutDocument
+ 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['user_id'] = \
+ user_id
+ kwargs['json_api_user_setting_in_document'] = \
+ json_api_user_setting_in_document
+ return self.create_entity_user_settings_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_users(
+ self,
+ json_api_user_in_document,
+ **kwargs
+ ):
+ """create_entity_users # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_users(json_api_user_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ json_api_user_in_document (JsonApiUserInDocument):
+
+ Keyword Args:
+ include ([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]
+ _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:
+ JsonApiUserOutDocument
+ 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['json_api_user_in_document'] = \
+ json_api_user_in_document
+ return self.create_entity_users_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_visualization_objects(
+ self,
+ workspace_id,
+ json_api_visualization_object_in_document,
+ **kwargs
+ ):
+ """create_entity_visualization_objects # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_visualization_objects(workspace_id, json_api_visualization_object_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ json_api_visualization_object_in_document (JsonApiVisualizationObjectInDocument):
+
+ Keyword Args:
+ include ([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]
+ _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:
+ JsonApiVisualizationObjectOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['json_api_visualization_object_in_document'] = \
+ json_api_visualization_object_in_document
+ return self.create_entity_visualization_objects_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_workspace_data_filters(
+ self,
+ workspace_id,
+ json_api_workspace_data_filter_in_document,
+ **kwargs
+ ):
+ """create_entity_workspace_data_filters # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_workspace_data_filters(workspace_id, json_api_workspace_data_filter_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ json_api_workspace_data_filter_in_document (JsonApiWorkspaceDataFilterInDocument):
+
+ Keyword Args:
+ include ([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]
+ _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:
+ JsonApiWorkspaceDataFilterOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['json_api_workspace_data_filter_in_document'] = \
+ json_api_workspace_data_filter_in_document
+ return self.create_entity_workspace_data_filters_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_workspace_settings(
+ self,
+ workspace_id,
+ json_api_workspace_setting_in_document,
+ **kwargs
+ ):
+ """create_entity_workspace_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_workspace_settings(workspace_id, json_api_workspace_setting_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ json_api_workspace_setting_in_document (JsonApiWorkspaceSettingInDocument):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ JsonApiWorkspaceSettingOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['json_api_workspace_setting_in_document'] = \
+ json_api_workspace_setting_in_document
+ return self.create_entity_workspace_settings_endpoint.call_with_http_info(**kwargs)
+
+ def create_entity_workspaces(
+ self,
+ json_api_workspace_in_document,
+ **kwargs
+ ):
+ """create_entity_workspaces # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.create_entity_workspaces(json_api_workspace_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ json_api_workspace_in_document (JsonApiWorkspaceInDocument):
+
+ Keyword Args:
+ include ([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]
+ _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:
+ JsonApiWorkspaceOutDocument
+ 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['json_api_workspace_in_document'] = \
+ json_api_workspace_in_document
+ return self.create_entity_workspaces_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_analytical_dashboards(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """delete_entity_analytical_dashboards # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_analytical_dashboards(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.delete_entity_analytical_dashboards_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_api_tokens(
+ self,
+ user_id,
+ id,
+ **kwargs
+ ):
+ """delete_entity_api_tokens # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_api_tokens(user_id, id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_id (str):
+ 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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['user_id'] = \
+ user_id
+ kwargs['id'] = \
+ id
+ return self.delete_entity_api_tokens_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_color_palettes(
+ self,
+ id,
+ **kwargs
+ ):
+ """delete_entity_color_palettes # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_color_palettes(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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['id'] = \
+ id
+ return self.delete_entity_color_palettes_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_csp_directives(
+ self,
+ id,
+ **kwargs
+ ):
+ """delete_entity_csp_directives # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_csp_directives(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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['id'] = \
+ id
+ return self.delete_entity_csp_directives_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_dashboard_plugins(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """delete_entity_dashboard_plugins # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_dashboard_plugins(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.delete_entity_dashboard_plugins_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_data_sources(
+ self,
+ id,
+ **kwargs
+ ):
+ """delete_entity_data_sources # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_data_sources(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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['id'] = \
+ id
+ return self.delete_entity_data_sources_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_filter_contexts(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """delete_entity_filter_contexts # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_filter_contexts(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.delete_entity_filter_contexts_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_metrics(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """delete_entity_metrics # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_metrics(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.delete_entity_metrics_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_organization_settings(
+ self,
+ id,
+ **kwargs
+ ):
+ """delete_entity_organization_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_organization_settings(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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['id'] = \
+ id
+ return self.delete_entity_organization_settings_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_themes(
+ self,
+ id,
+ **kwargs
+ ):
+ """delete_entity_themes # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_themes(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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['id'] = \
+ id
+ return self.delete_entity_themes_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_user_groups(
+ self,
+ id,
+ **kwargs
+ ):
+ """delete_entity_user_groups # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_user_groups(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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['id'] = \
+ id
+ return self.delete_entity_user_groups_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_user_settings(
+ self,
+ user_id,
+ id,
+ **kwargs
+ ):
+ """delete_entity_user_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_user_settings(user_id, id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_id (str):
+ 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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['user_id'] = \
+ user_id
+ kwargs['id'] = \
+ id
+ return self.delete_entity_user_settings_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_users(
+ self,
+ id,
+ **kwargs
+ ):
+ """delete_entity_users # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_users(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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['id'] = \
+ id
+ return self.delete_entity_users_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_visualization_objects(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """delete_entity_visualization_objects # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_visualization_objects(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.delete_entity_visualization_objects_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_workspace_data_filters(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """delete_entity_workspace_data_filters # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_workspace_data_filters(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.delete_entity_workspace_data_filters_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_workspace_settings(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """delete_entity_workspace_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_workspace_settings(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.delete_entity_workspace_settings_endpoint.call_with_http_info(**kwargs)
+
+ def delete_entity_workspaces(
+ self,
+ id,
+ **kwargs
+ ):
+ """delete_entity_workspaces # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.delete_entity_workspaces(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:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['id'] = \
+ id
+ return self.delete_entity_workspaces_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_analytical_dashboards(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_analytical_dashboards # 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_analytical_dashboards(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiAnalyticalDashboardOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_analytical_dashboards_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_api_tokens(
+ self,
+ user_id,
+ **kwargs
+ ):
+ """get_all_entities_api_tokens # 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_api_tokens(user_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_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]
+ 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]
+ _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:
+ JsonApiApiTokenOutList
+ 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['user_id'] = \
+ user_id
+ return self.get_all_entities_api_tokens_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_attributes(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_attributes # 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_attributes(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiAttributeOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_attributes_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_color_palettes(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_color_palettes # 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_color_palettes(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]
+ _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:
+ JsonApiColorPaletteOutList
+ 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_color_palettes_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_csp_directives(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_csp_directives # 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_csp_directives(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]
+ _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:
+ JsonApiCspDirectiveOutList
+ 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_csp_directives_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_dashboard_plugins(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_dashboard_plugins # 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_dashboard_plugins(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiDashboardPluginOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_dashboard_plugins_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_data_source_identifiers(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_data_source_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_data_source_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:
+ JsonApiDataSourceIdentifierOutList
+ 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_data_source_identifiers_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_data_source_tables(
+ self,
+ data_source_id,
+ **kwargs
+ ):
+ """get_all_entities_data_source_tables # 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_data_source_tables(data_source_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ data_source_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]
+ 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]
+ _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:
+ JsonApiDataSourceTableOutList
+ 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['data_source_id'] = \
+ data_source_id
+ return self.get_all_entities_data_source_tables_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_data_sources(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_data_sources # 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_data_sources(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:
+ JsonApiDataSourceOutList
+ 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_data_sources_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_datasets(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_datasets # 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_datasets(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiDatasetOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_datasets_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_entitlements(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_entitlements # 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_entitlements(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]
+ _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:
+ JsonApiEntitlementOutList
+ 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_entitlements_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_facts(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_facts # 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_facts(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiFactOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_facts_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_filter_contexts(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_filter_contexts # 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_filter_contexts(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiFilterContextOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_filter_contexts_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_labels(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_labels # 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_labels(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiLabelOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_labels_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_metrics(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_metrics # 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_metrics(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiMetricOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_metrics_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_organization_settings(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_organization_settings # 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_organization_settings(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]
+ _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:
+ JsonApiOrganizationSettingOutList
+ 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_organization_settings_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_themes(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_themes # 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_themes(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]
+ _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:
+ JsonApiThemeOutList
+ 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_themes_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_user_groups(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_user_groups # 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_user_groups(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]
+ include ([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 (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]
+ _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:
+ JsonApiUserGroupOutList
+ 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_user_groups_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_user_settings(
+ self,
+ user_id,
+ **kwargs
+ ):
+ """get_all_entities_user_settings # 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_user_settings(user_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_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]
+ 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]
+ _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:
+ JsonApiUserSettingOutList
+ 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['user_id'] = \
+ user_id
+ return self.get_all_entities_user_settings_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_users(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_users # 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_users(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]
+ include ([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 (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]
+ _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:
+ JsonApiUserOutList
+ 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_users_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_visualization_objects(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_visualization_objects # 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_visualization_objects(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiVisualizationObjectOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_visualization_objects_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_workspace_data_filter_settings(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_workspace_data_filter_settings # 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_workspace_data_filter_settings(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiWorkspaceDataFilterSettingOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_workspace_data_filter_settings_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_workspace_data_filters(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_workspace_data_filters # 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_workspace_data_filters(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ include ([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 (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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiWorkspaceDataFilterOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_workspace_data_filters_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_workspace_settings(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """get_all_entities_workspace_settings # 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_workspace_settings(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ origin (str): [optional] if omitted the server will use the default value of "ALL"
+ 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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiWorkspaceSettingOutList
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_all_entities_workspace_settings_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_entities_workspaces(
+ self,
+ **kwargs
+ ):
+ """get_all_entities_workspaces # 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_workspaces(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]
+ include ([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 (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:
+ JsonApiWorkspaceOutList
+ 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_workspaces_endpoint.call_with_http_info(**kwargs)
+
+ def get_all_options(
+ self,
+ **kwargs
+ ):
+ """Links for all configuration options # noqa: E501
+
+ Retrieves links for all options for different configurations. # 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_options(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ return self.get_all_options_endpoint.call_with_http_info(**kwargs)
+
+ def get_data_source_drivers(
+ self,
+ **kwargs
+ ):
+ """Get all available data source drivers # noqa: E501
+
+ Retrieves a list of all supported data sources along with information about the used drivers. # 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_data_source_drivers(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ return self.get_data_source_drivers_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_analytical_dashboards(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_analytical_dashboards # 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_analytical_dashboards(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiAnalyticalDashboardOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_analytical_dashboards_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_api_tokens(
+ self,
+ user_id,
+ id,
+ **kwargs
+ ):
+ """get_entity_api_tokens # 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_api_tokens(user_id, id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_id (str):
+ 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:
+ JsonApiApiTokenOutDocument
+ 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['user_id'] = \
+ user_id
+ kwargs['id'] = \
+ id
+ return self.get_entity_api_tokens_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_attributes(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_attributes # 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_attributes(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiAttributeOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_attributes_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_color_palettes(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_color_palettes # 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_color_palettes(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:
+ JsonApiColorPaletteOutDocument
+ 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_color_palettes_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_cookie_security_configurations(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_cookie_security_configurations # 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_cookie_security_configurations(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:
+ JsonApiCookieSecurityConfigurationOutDocument
+ 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_cookie_security_configurations_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_csp_directives(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_csp_directives # 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_csp_directives(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:
+ JsonApiCspDirectiveOutDocument
+ 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_csp_directives_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_dashboard_plugins(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_dashboard_plugins # 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_dashboard_plugins(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiDashboardPluginOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_dashboard_plugins_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_data_source_identifiers(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_data_source_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_data_source_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]
+ 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:
+ JsonApiDataSourceIdentifierOutDocument
+ 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_data_source_identifiers_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_data_source_tables(
+ self,
+ data_source_id,
+ id,
+ **kwargs
+ ):
+ """get_entity_data_source_tables # 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_data_source_tables(data_source_id, id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ data_source_id (str):
+ 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:
+ JsonApiDataSourceTableOutDocument
+ 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['data_source_id'] = \
+ data_source_id
+ kwargs['id'] = \
+ id
+ return self.get_entity_data_source_tables_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_data_sources(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_data_sources # 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_data_sources(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]
+ 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:
+ JsonApiDataSourceOutDocument
+ 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_data_sources_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_datasets(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_datasets # 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_datasets(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiDatasetOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_datasets_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_entitlements(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_entitlements # 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_entitlements(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:
+ JsonApiEntitlementOutDocument
+ 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_entitlements_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_facts(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_facts # 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_facts(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiFactOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_facts_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_filter_contexts(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_filter_contexts # 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_filter_contexts(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiFilterContextOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_filter_contexts_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_labels(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_labels # 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_labels(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiLabelOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_labels_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_metrics(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_metrics # 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_metrics(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiMetricOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_metrics_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_organization_settings(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_organization_settings # 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_organization_settings(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:
+ JsonApiOrganizationSettingOutDocument
+ 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_organization_settings_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_organizations(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_organizations # 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_organizations(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]
+ include ([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 ([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:
+ JsonApiOrganizationOutDocument
+ 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_organizations_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_themes(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_themes # 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_themes(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:
+ JsonApiThemeOutDocument
+ 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_themes_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_user_groups(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_user_groups # 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_user_groups(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]
+ include ([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]
+ _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:
+ JsonApiUserGroupOutDocument
+ 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_user_groups_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_user_settings(
+ self,
+ user_id,
+ id,
+ **kwargs
+ ):
+ """get_entity_user_settings # 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_user_settings(user_id, id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_id (str):
+ 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:
+ JsonApiUserSettingOutDocument
+ 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['user_id'] = \
+ user_id
+ kwargs['id'] = \
+ id
+ return self.get_entity_user_settings_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_users(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_users # 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_users(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]
+ include ([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]
+ _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:
+ JsonApiUserOutDocument
+ 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_users_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_visualization_objects(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_visualization_objects # 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_visualization_objects(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiVisualizationObjectOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_visualization_objects_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_workspace_data_filter_settings(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_workspace_data_filter_settings # 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_workspace_data_filter_settings(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiWorkspaceDataFilterSettingOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_workspace_data_filter_settings_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_workspace_data_filters(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_workspace_data_filters # 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_workspace_data_filters(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ include ([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 (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiWorkspaceDataFilterOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_workspace_data_filters_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_workspace_settings(
+ self,
+ workspace_id,
+ object_id,
+ **kwargs
+ ):
+ """get_entity_workspace_settings # 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_workspace_settings(workspace_id, object_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_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]
+ x_gdc_validate_relations (bool): [optional] if omitted the server will use the default value of False
+ _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:
+ JsonApiWorkspaceSettingOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ return self.get_entity_workspace_settings_endpoint.call_with_http_info(**kwargs)
+
+ def get_entity_workspaces(
+ self,
+ id,
+ **kwargs
+ ):
+ """get_entity_workspaces # 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_workspaces(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]
+ include ([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 ([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:
+ JsonApiWorkspaceOutDocument
+ 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_workspaces_endpoint.call_with_http_info(**kwargs)
+
+ def get_organization(
+ self,
+ **kwargs
+ ):
+ """Get current organization info # noqa: E501
+
+ Gets a basic information about organization. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.get_organization(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ meta_include ([str]): Return list of permissions available to logged user.. [optional]
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ return self.get_organization_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_analytical_dashboards(
+ self,
+ workspace_id,
+ object_id,
+ json_api_analytical_dashboard_patch_document,
+ **kwargs
+ ):
+ """patch_entity_analytical_dashboards # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_analytical_dashboards(workspace_id, object_id, json_api_analytical_dashboard_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_analytical_dashboard_patch_document (JsonApiAnalyticalDashboardPatchDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiAnalyticalDashboardOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_analytical_dashboard_patch_document'] = \
+ json_api_analytical_dashboard_patch_document
+ return self.patch_entity_analytical_dashboards_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_color_palettes(
+ self,
+ id,
+ json_api_color_palette_patch_document,
+ **kwargs
+ ):
+ """patch_entity_color_palettes # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_color_palettes(id, json_api_color_palette_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_color_palette_patch_document (JsonApiColorPalettePatchDocument):
+
+ 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:
+ JsonApiColorPaletteOutDocument
+ 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
+ kwargs['json_api_color_palette_patch_document'] = \
+ json_api_color_palette_patch_document
+ return self.patch_entity_color_palettes_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_cookie_security_configurations(
+ self,
+ id,
+ json_api_cookie_security_configuration_patch_document,
+ **kwargs
+ ):
+ """patch_entity_cookie_security_configurations # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_cookie_security_configurations(id, json_api_cookie_security_configuration_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_cookie_security_configuration_patch_document (JsonApiCookieSecurityConfigurationPatchDocument):
+
+ 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:
+ JsonApiCookieSecurityConfigurationOutDocument
+ 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
+ kwargs['json_api_cookie_security_configuration_patch_document'] = \
+ json_api_cookie_security_configuration_patch_document
+ return self.patch_entity_cookie_security_configurations_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_csp_directives(
+ self,
+ id,
+ json_api_csp_directive_patch_document,
+ **kwargs
+ ):
+ """patch_entity_csp_directives # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_csp_directives(id, json_api_csp_directive_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_csp_directive_patch_document (JsonApiCspDirectivePatchDocument):
+
+ 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:
+ JsonApiCspDirectiveOutDocument
+ 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
+ kwargs['json_api_csp_directive_patch_document'] = \
+ json_api_csp_directive_patch_document
+ return self.patch_entity_csp_directives_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_dashboard_plugins(
+ self,
+ workspace_id,
+ object_id,
+ json_api_dashboard_plugin_patch_document,
+ **kwargs
+ ):
+ """patch_entity_dashboard_plugins # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_dashboard_plugins(workspace_id, object_id, json_api_dashboard_plugin_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_dashboard_plugin_patch_document (JsonApiDashboardPluginPatchDocument):
+
+ 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:
+ JsonApiDashboardPluginOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_dashboard_plugin_patch_document'] = \
+ json_api_dashboard_plugin_patch_document
+ return self.patch_entity_dashboard_plugins_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_data_sources(
+ self,
+ id,
+ json_api_data_source_patch_document,
+ **kwargs
+ ):
+ """patch_entity_data_sources # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_data_sources(id, json_api_data_source_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_data_source_patch_document (JsonApiDataSourcePatchDocument):
+
+ 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:
+ JsonApiDataSourceOutDocument
+ 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
+ kwargs['json_api_data_source_patch_document'] = \
+ json_api_data_source_patch_document
+ return self.patch_entity_data_sources_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_filter_contexts(
+ self,
+ workspace_id,
+ object_id,
+ json_api_filter_context_patch_document,
+ **kwargs
+ ):
+ """patch_entity_filter_contexts # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_filter_contexts(workspace_id, object_id, json_api_filter_context_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_filter_context_patch_document (JsonApiFilterContextPatchDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiFilterContextOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_filter_context_patch_document'] = \
+ json_api_filter_context_patch_document
+ return self.patch_entity_filter_contexts_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_metrics(
+ self,
+ workspace_id,
+ object_id,
+ json_api_metric_patch_document,
+ **kwargs
+ ):
+ """patch_entity_metrics # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_metrics(workspace_id, object_id, json_api_metric_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_metric_patch_document (JsonApiMetricPatchDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiMetricOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_metric_patch_document'] = \
+ json_api_metric_patch_document
+ return self.patch_entity_metrics_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_organization_settings(
+ self,
+ id,
+ json_api_organization_setting_patch_document,
+ **kwargs
+ ):
+ """patch_entity_organization_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_organization_settings(id, json_api_organization_setting_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_organization_setting_patch_document (JsonApiOrganizationSettingPatchDocument):
+
+ 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:
+ JsonApiOrganizationSettingOutDocument
+ 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
+ kwargs['json_api_organization_setting_patch_document'] = \
+ json_api_organization_setting_patch_document
+ return self.patch_entity_organization_settings_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_organizations(
+ self,
+ id,
+ json_api_organization_patch_document,
+ **kwargs
+ ):
+ """patch_entity_organizations # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_organizations(id, json_api_organization_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_organization_patch_document (JsonApiOrganizationPatchDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiOrganizationOutDocument
+ 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
+ kwargs['json_api_organization_patch_document'] = \
+ json_api_organization_patch_document
+ return self.patch_entity_organizations_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_themes(
+ self,
+ id,
+ json_api_theme_patch_document,
+ **kwargs
+ ):
+ """patch_entity_themes # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_themes(id, json_api_theme_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_theme_patch_document (JsonApiThemePatchDocument):
+
+ 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:
+ JsonApiThemeOutDocument
+ 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
+ kwargs['json_api_theme_patch_document'] = \
+ json_api_theme_patch_document
+ return self.patch_entity_themes_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_user_groups(
+ self,
+ id,
+ json_api_user_group_patch_document,
+ **kwargs
+ ):
+ """patch_entity_user_groups # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_user_groups(id, json_api_user_group_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_user_group_patch_document (JsonApiUserGroupPatchDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiUserGroupOutDocument
+ 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
+ kwargs['json_api_user_group_patch_document'] = \
+ json_api_user_group_patch_document
+ return self.patch_entity_user_groups_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_users(
+ self,
+ id,
+ json_api_user_patch_document,
+ **kwargs
+ ):
+ """patch_entity_users # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_users(id, json_api_user_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_user_patch_document (JsonApiUserPatchDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiUserOutDocument
+ 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
+ kwargs['json_api_user_patch_document'] = \
+ json_api_user_patch_document
+ return self.patch_entity_users_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_visualization_objects(
+ self,
+ workspace_id,
+ object_id,
+ json_api_visualization_object_patch_document,
+ **kwargs
+ ):
+ """patch_entity_visualization_objects # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_visualization_objects(workspace_id, object_id, json_api_visualization_object_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_visualization_object_patch_document (JsonApiVisualizationObjectPatchDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiVisualizationObjectOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_visualization_object_patch_document'] = \
+ json_api_visualization_object_patch_document
+ return self.patch_entity_visualization_objects_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_workspace_data_filters(
+ self,
+ workspace_id,
+ object_id,
+ json_api_workspace_data_filter_patch_document,
+ **kwargs
+ ):
+ """patch_entity_workspace_data_filters # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_workspace_data_filters(workspace_id, object_id, json_api_workspace_data_filter_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_workspace_data_filter_patch_document (JsonApiWorkspaceDataFilterPatchDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiWorkspaceDataFilterOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_workspace_data_filter_patch_document'] = \
+ json_api_workspace_data_filter_patch_document
+ return self.patch_entity_workspace_data_filters_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_workspace_settings(
+ self,
+ workspace_id,
+ object_id,
+ json_api_workspace_setting_patch_document,
+ **kwargs
+ ):
+ """patch_entity_workspace_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_workspace_settings(workspace_id, object_id, json_api_workspace_setting_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_workspace_setting_patch_document (JsonApiWorkspaceSettingPatchDocument):
+
+ 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:
+ JsonApiWorkspaceSettingOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_workspace_setting_patch_document'] = \
+ json_api_workspace_setting_patch_document
+ return self.patch_entity_workspace_settings_endpoint.call_with_http_info(**kwargs)
+
+ def patch_entity_workspaces(
+ self,
+ id,
+ json_api_workspace_patch_document,
+ **kwargs
+ ):
+ """patch_entity_workspaces # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.patch_entity_workspaces(id, json_api_workspace_patch_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_workspace_patch_document (JsonApiWorkspacePatchDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiWorkspaceOutDocument
+ 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
+ kwargs['json_api_workspace_patch_document'] = \
+ json_api_workspace_patch_document
+ return self.patch_entity_workspaces_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_analytical_dashboards(
+ self,
+ workspace_id,
+ object_id,
+ json_api_analytical_dashboard_in_document,
+ **kwargs
+ ):
+ """update_entity_analytical_dashboards # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_analytical_dashboards(workspace_id, object_id, json_api_analytical_dashboard_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_analytical_dashboard_in_document (JsonApiAnalyticalDashboardInDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiAnalyticalDashboardOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_analytical_dashboard_in_document'] = \
+ json_api_analytical_dashboard_in_document
+ return self.update_entity_analytical_dashboards_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_api_tokens(
+ self,
+ user_id,
+ id,
+ json_api_api_token_in_document,
+ **kwargs
+ ):
+ """update_entity_api_tokens # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_api_tokens(user_id, id, json_api_api_token_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_id (str):
+ id (str):
+ json_api_api_token_in_document (JsonApiApiTokenInDocument):
+
+ 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:
+ JsonApiApiTokenOutDocument
+ 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['user_id'] = \
+ user_id
+ kwargs['id'] = \
+ id
+ kwargs['json_api_api_token_in_document'] = \
+ json_api_api_token_in_document
+ return self.update_entity_api_tokens_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_color_palettes(
+ self,
+ id,
+ json_api_color_palette_in_document,
+ **kwargs
+ ):
+ """update_entity_color_palettes # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_color_palettes(id, json_api_color_palette_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_color_palette_in_document (JsonApiColorPaletteInDocument):
+
+ 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:
+ JsonApiColorPaletteOutDocument
+ 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
+ kwargs['json_api_color_palette_in_document'] = \
+ json_api_color_palette_in_document
+ return self.update_entity_color_palettes_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_cookie_security_configurations(
+ self,
+ id,
+ json_api_cookie_security_configuration_in_document,
+ **kwargs
+ ):
+ """update_entity_cookie_security_configurations # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_cookie_security_configurations(id, json_api_cookie_security_configuration_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_cookie_security_configuration_in_document (JsonApiCookieSecurityConfigurationInDocument):
+
+ 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:
+ JsonApiCookieSecurityConfigurationOutDocument
+ 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
+ kwargs['json_api_cookie_security_configuration_in_document'] = \
+ json_api_cookie_security_configuration_in_document
+ return self.update_entity_cookie_security_configurations_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_csp_directives(
+ self,
+ id,
+ json_api_csp_directive_in_document,
+ **kwargs
+ ):
+ """update_entity_csp_directives # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_csp_directives(id, json_api_csp_directive_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_csp_directive_in_document (JsonApiCspDirectiveInDocument):
+
+ 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:
+ JsonApiCspDirectiveOutDocument
+ 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
+ kwargs['json_api_csp_directive_in_document'] = \
+ json_api_csp_directive_in_document
+ return self.update_entity_csp_directives_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_dashboard_plugins(
+ self,
+ workspace_id,
+ object_id,
+ json_api_dashboard_plugin_in_document,
+ **kwargs
+ ):
+ """update_entity_dashboard_plugins # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_dashboard_plugins(workspace_id, object_id, json_api_dashboard_plugin_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_dashboard_plugin_in_document (JsonApiDashboardPluginInDocument):
+
+ 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:
+ JsonApiDashboardPluginOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_dashboard_plugin_in_document'] = \
+ json_api_dashboard_plugin_in_document
+ return self.update_entity_dashboard_plugins_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_data_sources(
+ self,
+ id,
+ json_api_data_source_in_document,
+ **kwargs
+ ):
+ """update_entity_data_sources # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_data_sources(id, json_api_data_source_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_data_source_in_document (JsonApiDataSourceInDocument):
+
+ 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:
+ JsonApiDataSourceOutDocument
+ 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
+ kwargs['json_api_data_source_in_document'] = \
+ json_api_data_source_in_document
+ return self.update_entity_data_sources_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_filter_contexts(
+ self,
+ workspace_id,
+ object_id,
+ json_api_filter_context_in_document,
+ **kwargs
+ ):
+ """update_entity_filter_contexts # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_filter_contexts(workspace_id, object_id, json_api_filter_context_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_filter_context_in_document (JsonApiFilterContextInDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiFilterContextOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_filter_context_in_document'] = \
+ json_api_filter_context_in_document
+ return self.update_entity_filter_contexts_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_metrics(
+ self,
+ workspace_id,
+ object_id,
+ json_api_metric_in_document,
+ **kwargs
+ ):
+ """update_entity_metrics # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_metrics(workspace_id, object_id, json_api_metric_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_metric_in_document (JsonApiMetricInDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiMetricOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_metric_in_document'] = \
+ json_api_metric_in_document
+ return self.update_entity_metrics_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_organization_settings(
+ self,
+ id,
+ json_api_organization_setting_in_document,
+ **kwargs
+ ):
+ """update_entity_organization_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_organization_settings(id, json_api_organization_setting_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_organization_setting_in_document (JsonApiOrganizationSettingInDocument):
+
+ 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:
+ JsonApiOrganizationSettingOutDocument
+ 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
+ kwargs['json_api_organization_setting_in_document'] = \
+ json_api_organization_setting_in_document
+ return self.update_entity_organization_settings_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_organizations(
+ self,
+ id,
+ json_api_organization_in_document,
+ **kwargs
+ ):
+ """update_entity_organizations # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_organizations(id, json_api_organization_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_organization_in_document (JsonApiOrganizationInDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiOrganizationOutDocument
+ 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
+ kwargs['json_api_organization_in_document'] = \
+ json_api_organization_in_document
+ return self.update_entity_organizations_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_themes(
+ self,
+ id,
+ json_api_theme_in_document,
+ **kwargs
+ ):
+ """update_entity_themes # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_themes(id, json_api_theme_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_theme_in_document (JsonApiThemeInDocument):
+
+ 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:
+ JsonApiThemeOutDocument
+ 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
+ kwargs['json_api_theme_in_document'] = \
+ json_api_theme_in_document
+ return self.update_entity_themes_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_user_groups(
+ self,
+ id,
+ json_api_user_group_in_document,
+ **kwargs
+ ):
+ """update_entity_user_groups # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_user_groups(id, json_api_user_group_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_user_group_in_document (JsonApiUserGroupInDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiUserGroupOutDocument
+ 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
+ kwargs['json_api_user_group_in_document'] = \
+ json_api_user_group_in_document
+ return self.update_entity_user_groups_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_user_settings(
+ self,
+ user_id,
+ id,
+ json_api_user_setting_in_document,
+ **kwargs
+ ):
+ """update_entity_user_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_user_settings(user_id, id, json_api_user_setting_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ user_id (str):
+ id (str):
+ json_api_user_setting_in_document (JsonApiUserSettingInDocument):
+
+ 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:
+ JsonApiUserSettingOutDocument
+ 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['user_id'] = \
+ user_id
+ kwargs['id'] = \
+ id
+ kwargs['json_api_user_setting_in_document'] = \
+ json_api_user_setting_in_document
+ return self.update_entity_user_settings_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_users(
+ self,
+ id,
+ json_api_user_in_document,
+ **kwargs
+ ):
+ """update_entity_users # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_users(id, json_api_user_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_user_in_document (JsonApiUserInDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiUserOutDocument
+ 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
+ kwargs['json_api_user_in_document'] = \
+ json_api_user_in_document
+ return self.update_entity_users_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_visualization_objects(
+ self,
+ workspace_id,
+ object_id,
+ json_api_visualization_object_in_document,
+ **kwargs
+ ):
+ """update_entity_visualization_objects # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_visualization_objects(workspace_id, object_id, json_api_visualization_object_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_visualization_object_in_document (JsonApiVisualizationObjectInDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiVisualizationObjectOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_visualization_object_in_document'] = \
+ json_api_visualization_object_in_document
+ return self.update_entity_visualization_objects_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_workspace_data_filters(
+ self,
+ workspace_id,
+ object_id,
+ json_api_workspace_data_filter_in_document,
+ **kwargs
+ ):
+ """update_entity_workspace_data_filters # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_workspace_data_filters(workspace_id, object_id, json_api_workspace_data_filter_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_workspace_data_filter_in_document (JsonApiWorkspaceDataFilterInDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiWorkspaceDataFilterOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_workspace_data_filter_in_document'] = \
+ json_api_workspace_data_filter_in_document
+ return self.update_entity_workspace_data_filters_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_workspace_settings(
+ self,
+ workspace_id,
+ object_id,
+ json_api_workspace_setting_in_document,
+ **kwargs
+ ):
+ """update_entity_workspace_settings # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_workspace_settings(workspace_id, object_id, json_api_workspace_setting_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ object_id (str):
+ json_api_workspace_setting_in_document (JsonApiWorkspaceSettingInDocument):
+
+ 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:
+ JsonApiWorkspaceSettingOutDocument
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['object_id'] = \
+ object_id
+ kwargs['json_api_workspace_setting_in_document'] = \
+ json_api_workspace_setting_in_document
+ return self.update_entity_workspace_settings_endpoint.call_with_http_info(**kwargs)
+
+ def update_entity_workspaces(
+ self,
+ id,
+ json_api_workspace_in_document,
+ **kwargs
+ ):
+ """update_entity_workspaces # noqa: E501
+
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.update_entity_workspaces(id, json_api_workspace_in_document, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ id (str):
+ json_api_workspace_in_document (JsonApiWorkspaceInDocument):
+
+ 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]
+ include ([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]
+ _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:
+ JsonApiWorkspaceOutDocument
+ 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
+ kwargs['json_api_workspace_in_document'] = \
+ json_api_workspace_in_document
+ return self.update_entity_workspaces_endpoint.call_with_http_info(**kwargs)
+
diff --git a/gooddata-api-client/gooddata_api_client/api/layout_api.py b/gooddata-api-client/gooddata_api_client/api/layout_api.py
new file mode 100644
index 000000000..d7c0bf673
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/api/layout_api.py
@@ -0,0 +1,3178 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.api_client import ApiClient, Endpoint as _Endpoint
+from gooddata_api_client.model_utils import ( # noqa: F401
+ check_allowed_values,
+ check_validations,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_and_convert_types
+)
+from gooddata_api_client.model.declarative_analytics import DeclarativeAnalytics
+from gooddata_api_client.model.declarative_data_sources import DeclarativeDataSources
+from gooddata_api_client.model.declarative_model import DeclarativeModel
+from gooddata_api_client.model.declarative_organization import DeclarativeOrganization
+from gooddata_api_client.model.declarative_pdm import DeclarativePdm
+from gooddata_api_client.model.declarative_user_groups import DeclarativeUserGroups
+from gooddata_api_client.model.declarative_users import DeclarativeUsers
+from gooddata_api_client.model.declarative_users_user_groups import DeclarativeUsersUserGroups
+from gooddata_api_client.model.declarative_workspace_data_filters import DeclarativeWorkspaceDataFilters
+from gooddata_api_client.model.declarative_workspace_model import DeclarativeWorkspaceModel
+from gooddata_api_client.model.declarative_workspace_permissions import DeclarativeWorkspacePermissions
+from gooddata_api_client.model.declarative_workspaces import DeclarativeWorkspaces
+
+
+class LayoutApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+ self.get_analytics_model_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeAnalytics,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces/{workspaceId}/analyticsModel',
+ 'operation_id': 'get_analytics_model',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_data_sources_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeDataSources,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/dataSources',
+ 'operation_id': 'get_data_sources_layout',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_logical_model_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeModel,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces/{workspaceId}/logicalModel',
+ 'operation_id': 'get_logical_model',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'include_parents',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'include_parents':
+ (bool,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ 'include_parents': 'includeParents',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'include_parents': 'query',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_organization_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeOrganization,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/organization',
+ 'operation_id': 'get_organization_layout',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_pdm_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativePdm,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/dataSources/{dataSourceId}/physicalModel',
+ 'operation_id': 'get_pdm_layout',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'data_source_id',
+ ],
+ 'required': [
+ 'data_source_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'data_source_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'data_source_id': 'dataSourceId',
+ },
+ 'location_map': {
+ 'data_source_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_user_groups_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeUserGroups,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/userGroups',
+ 'operation_id': 'get_user_groups_layout',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_users_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeUsers,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/users',
+ 'operation_id': 'get_users_layout',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_users_user_groups_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeUsersUserGroups,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/usersAndUserGroups',
+ 'operation_id': 'get_users_user_groups_layout',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_workspace_data_filters_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeWorkspaceDataFilters,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaceDataFilters',
+ 'operation_id': 'get_workspace_data_filters_layout',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_workspace_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeWorkspaceModel,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces/{workspaceId}',
+ 'operation_id': 'get_workspace_layout',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_workspace_permissions_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeWorkspacePermissions,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces/{workspaceId}/permissions',
+ 'operation_id': 'get_workspace_permissions',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ ],
+ 'required': [
+ 'workspace_id',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.get_workspaces_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': (DeclarativeWorkspaces,),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces',
+ 'operation_id': 'get_workspaces_layout',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
+ self.put_data_sources_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/dataSources',
+ 'operation_id': 'put_data_sources_layout',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'declarative_data_sources',
+ ],
+ 'required': [
+ 'declarative_data_sources',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'declarative_data_sources':
+ (DeclarativeDataSources,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'declarative_data_sources': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.put_user_groups_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/userGroups',
+ 'operation_id': 'put_user_groups_layout',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'declarative_user_groups',
+ ],
+ 'required': [
+ 'declarative_user_groups',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'declarative_user_groups':
+ (DeclarativeUserGroups,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'declarative_user_groups': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.put_users_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/users',
+ 'operation_id': 'put_users_layout',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'declarative_users',
+ ],
+ 'required': [
+ 'declarative_users',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'declarative_users':
+ (DeclarativeUsers,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'declarative_users': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.put_users_user_groups_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/usersAndUserGroups',
+ 'operation_id': 'put_users_user_groups_layout',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'declarative_users_user_groups',
+ ],
+ 'required': [
+ 'declarative_users_user_groups',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'declarative_users_user_groups':
+ (DeclarativeUsersUserGroups,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'declarative_users_user_groups': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.put_workspace_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces/{workspaceId}',
+ 'operation_id': 'put_workspace_layout',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'declarative_workspace_model',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'declarative_workspace_model',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'declarative_workspace_model':
+ (DeclarativeWorkspaceModel,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'declarative_workspace_model': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.set_analytics_model_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces/{workspaceId}/analyticsModel',
+ 'operation_id': 'set_analytics_model',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'declarative_analytics',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'declarative_analytics',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'declarative_analytics':
+ (DeclarativeAnalytics,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'declarative_analytics': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.set_logical_model_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces/{workspaceId}/logicalModel',
+ 'operation_id': 'set_logical_model',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'declarative_model',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'declarative_model',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'declarative_model':
+ (DeclarativeModel,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'declarative_model': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.set_organization_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/organization',
+ 'operation_id': 'set_organization_layout',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'declarative_organization',
+ ],
+ 'required': [
+ 'declarative_organization',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'declarative_organization':
+ (DeclarativeOrganization,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'declarative_organization': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.set_pdm_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/dataSources/{dataSourceId}/physicalModel',
+ 'operation_id': 'set_pdm_layout',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'data_source_id',
+ 'declarative_pdm',
+ ],
+ 'required': [
+ 'data_source_id',
+ 'declarative_pdm',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'data_source_id':
+ (str,),
+ 'declarative_pdm':
+ (DeclarativePdm,),
+ },
+ 'attribute_map': {
+ 'data_source_id': 'dataSourceId',
+ },
+ 'location_map': {
+ 'data_source_id': 'path',
+ 'declarative_pdm': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.set_workspace_data_filters_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaceDataFilters',
+ 'operation_id': 'set_workspace_data_filters_layout',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'declarative_workspace_data_filters',
+ ],
+ 'required': [
+ 'declarative_workspace_data_filters',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'declarative_workspace_data_filters':
+ (DeclarativeWorkspaceDataFilters,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'declarative_workspace_data_filters': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.set_workspace_permissions_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces/{workspaceId}/permissions',
+ 'operation_id': 'set_workspace_permissions',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'workspace_id',
+ 'declarative_workspace_permissions',
+ ],
+ 'required': [
+ 'workspace_id',
+ 'declarative_workspace_permissions',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'workspace_id':
+ (str,),
+ 'declarative_workspace_permissions':
+ (DeclarativeWorkspacePermissions,),
+ },
+ 'attribute_map': {
+ 'workspace_id': 'workspaceId',
+ },
+ 'location_map': {
+ 'workspace_id': 'path',
+ 'declarative_workspace_permissions': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+ self.set_workspaces_layout_endpoint = _Endpoint(
+ settings={
+ 'response_type': None,
+ 'auth': [],
+ 'endpoint_path': '/api/v1/layout/workspaces',
+ 'operation_id': 'set_workspaces_layout',
+ 'http_method': 'PUT',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'declarative_workspaces',
+ ],
+ 'required': [
+ 'declarative_workspaces',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'declarative_workspaces':
+ (DeclarativeWorkspaces,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'declarative_workspaces': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
+
+ def get_analytics_model(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """Get analytics model # noqa: E501
+
+ Retrieve current analytics model of the workspace. # 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_analytics_model(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeAnalytics
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_analytics_model_endpoint.call_with_http_info(**kwargs)
+
+ def get_data_sources_layout(
+ self,
+ **kwargs
+ ):
+ """Get all data sources # noqa: E501
+
+ Retrieve all data sources including related physical model. # 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_data_sources_layout(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeDataSources
+ 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_data_sources_layout_endpoint.call_with_http_info(**kwargs)
+
+ def get_logical_model(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """Get logical model # noqa: E501
+
+ Retrieve current logical model of the workspace in declarative form. # 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_logical_model(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ include_parents (bool): [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:
+ DeclarativeModel
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_logical_model_endpoint.call_with_http_info(**kwargs)
+
+ def get_organization_layout(
+ self,
+ **kwargs
+ ):
+ """Get organization layout # noqa: E501
+
+ Retrieve complete layout of organization, workspaces, user-groups, etc. # 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_organization_layout(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeOrganization
+ 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_organization_layout_endpoint.call_with_http_info(**kwargs)
+
+ def get_pdm_layout(
+ self,
+ data_source_id,
+ **kwargs
+ ):
+ """Get data source physical model layout # noqa: E501
+
+ Retrieve complete layout of tables with their columns # 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_pdm_layout(data_source_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ data_source_id (str):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativePdm
+ 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['data_source_id'] = \
+ data_source_id
+ return self.get_pdm_layout_endpoint.call_with_http_info(**kwargs)
+
+ def get_user_groups_layout(
+ self,
+ **kwargs
+ ):
+ """Get all user groups # noqa: E501
+
+ Retrieve all user-groups eventually with parent group. # 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_user_groups_layout(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeUserGroups
+ 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_user_groups_layout_endpoint.call_with_http_info(**kwargs)
+
+ def get_users_layout(
+ self,
+ **kwargs
+ ):
+ """Get all users # noqa: E501
+
+ Retrieve all users including authentication properties. # 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_users_layout(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeUsers
+ 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_users_layout_endpoint.call_with_http_info(**kwargs)
+
+ def get_users_user_groups_layout(
+ self,
+ **kwargs
+ ):
+ """Get all users and user groups # noqa: E501
+
+ Retrieve all users and user groups with theirs properties. # 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_users_user_groups_layout(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeUsersUserGroups
+ 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_users_user_groups_layout_endpoint.call_with_http_info(**kwargs)
+
+ def get_workspace_data_filters_layout(
+ self,
+ **kwargs
+ ):
+ """Get workspace data filters for all workspaces # noqa: E501
+
+ Retrieve all workspaces and related workspace data filters (and their settings / values). # 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_workspace_data_filters_layout(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeWorkspaceDataFilters
+ 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_workspace_data_filters_layout_endpoint.call_with_http_info(**kwargs)
+
+ def get_workspace_layout(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """Get workspace layout # noqa: E501
+
+ Retrieve current model of the workspace in declarative form. # 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_workspace_layout(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeWorkspaceModel
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_workspace_layout_endpoint.call_with_http_info(**kwargs)
+
+ def get_workspace_permissions(
+ self,
+ workspace_id,
+ **kwargs
+ ):
+ """Get permissions for the workspace # noqa: E501
+
+ Retrieve current set of permissions of the workspace in a declarative form. # 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_workspace_permissions(workspace_id, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeWorkspacePermissions
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ return self.get_workspace_permissions_endpoint.call_with_http_info(**kwargs)
+
+ def get_workspaces_layout(
+ self,
+ **kwargs
+ ):
+ """Get all workspaces layout # noqa: E501
+
+ Gets complete layout of workspaces, their hierarchy, models. # 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_workspaces_layout(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ DeclarativeWorkspaces
+ 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_workspaces_layout_endpoint.call_with_http_info(**kwargs)
+
+ def put_data_sources_layout(
+ self,
+ declarative_data_sources,
+ **kwargs
+ ):
+ """Put all data sources # noqa: E501
+
+ Set all data sources including related physical model. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.put_data_sources_layout(declarative_data_sources, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ declarative_data_sources (DeclarativeDataSources):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['declarative_data_sources'] = \
+ declarative_data_sources
+ return self.put_data_sources_layout_endpoint.call_with_http_info(**kwargs)
+
+ def put_user_groups_layout(
+ self,
+ declarative_user_groups,
+ **kwargs
+ ):
+ """Put all user groups # noqa: E501
+
+ Define all user groups with their parents eventually. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.put_user_groups_layout(declarative_user_groups, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ declarative_user_groups (DeclarativeUserGroups):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['declarative_user_groups'] = \
+ declarative_user_groups
+ return self.put_user_groups_layout_endpoint.call_with_http_info(**kwargs)
+
+ def put_users_layout(
+ self,
+ declarative_users,
+ **kwargs
+ ):
+ """Put all users # noqa: E501
+
+ Set all users and their authentication properties. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.put_users_layout(declarative_users, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ declarative_users (DeclarativeUsers):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['declarative_users'] = \
+ declarative_users
+ return self.put_users_layout_endpoint.call_with_http_info(**kwargs)
+
+ def put_users_user_groups_layout(
+ self,
+ declarative_users_user_groups,
+ **kwargs
+ ):
+ """Put all users and user groups # noqa: E501
+
+ Define all users and user groups with theirs properties. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.put_users_user_groups_layout(declarative_users_user_groups, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ declarative_users_user_groups (DeclarativeUsersUserGroups):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['declarative_users_user_groups'] = \
+ declarative_users_user_groups
+ return self.put_users_user_groups_layout_endpoint.call_with_http_info(**kwargs)
+
+ def put_workspace_layout(
+ self,
+ workspace_id,
+ declarative_workspace_model,
+ **kwargs
+ ):
+ """Set workspace layout # noqa: E501
+
+ Set complete layout of workspace, like model, authorization, etc. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.put_workspace_layout(workspace_id, declarative_workspace_model, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ declarative_workspace_model (DeclarativeWorkspaceModel):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['declarative_workspace_model'] = \
+ declarative_workspace_model
+ return self.put_workspace_layout_endpoint.call_with_http_info(**kwargs)
+
+ def set_analytics_model(
+ self,
+ workspace_id,
+ declarative_analytics,
+ **kwargs
+ ):
+ """Set analytics model # noqa: E501
+
+ Set effective analytics model of the workspace. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.set_analytics_model(workspace_id, declarative_analytics, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ declarative_analytics (DeclarativeAnalytics):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['declarative_analytics'] = \
+ declarative_analytics
+ return self.set_analytics_model_endpoint.call_with_http_info(**kwargs)
+
+ def set_logical_model(
+ self,
+ workspace_id,
+ declarative_model,
+ **kwargs
+ ):
+ """Set logical model # noqa: E501
+
+ Set effective logical model of the workspace. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.set_logical_model(workspace_id, declarative_model, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ declarative_model (DeclarativeModel):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['declarative_model'] = \
+ declarative_model
+ return self.set_logical_model_endpoint.call_with_http_info(**kwargs)
+
+ def set_organization_layout(
+ self,
+ declarative_organization,
+ **kwargs
+ ):
+ """Set organization layout # noqa: E501
+
+ Sets complete layout of organization, like workspaces, user-groups, etc. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.set_organization_layout(declarative_organization, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ declarative_organization (DeclarativeOrganization):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['declarative_organization'] = \
+ declarative_organization
+ return self.set_organization_layout_endpoint.call_with_http_info(**kwargs)
+
+ def set_pdm_layout(
+ self,
+ data_source_id,
+ declarative_pdm,
+ **kwargs
+ ):
+ """Set data source physical model layout # noqa: E501
+
+ Sets complete layout of tables with their columns under corresponding Data Source. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.set_pdm_layout(data_source_id, declarative_pdm, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ data_source_id (str):
+ declarative_pdm (DeclarativePdm):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['data_source_id'] = \
+ data_source_id
+ kwargs['declarative_pdm'] = \
+ declarative_pdm
+ return self.set_pdm_layout_endpoint.call_with_http_info(**kwargs)
+
+ def set_workspace_data_filters_layout(
+ self,
+ declarative_workspace_data_filters,
+ **kwargs
+ ):
+ """Set all workspace data filters # noqa: E501
+
+ Sets workspace data filters in all workspaces in entire organization. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.set_workspace_data_filters_layout(declarative_workspace_data_filters, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ declarative_workspace_data_filters (DeclarativeWorkspaceDataFilters):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['declarative_workspace_data_filters'] = \
+ declarative_workspace_data_filters
+ return self.set_workspace_data_filters_layout_endpoint.call_with_http_info(**kwargs)
+
+ def set_workspace_permissions(
+ self,
+ workspace_id,
+ declarative_workspace_permissions,
+ **kwargs
+ ):
+ """Set permissions for the workspace # noqa: E501
+
+ Set effective permissions for the workspace # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.set_workspace_permissions(workspace_id, declarative_workspace_permissions, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ workspace_id (str):
+ declarative_workspace_permissions (DeclarativeWorkspacePermissions):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['workspace_id'] = \
+ workspace_id
+ kwargs['declarative_workspace_permissions'] = \
+ declarative_workspace_permissions
+ return self.set_workspace_permissions_endpoint.call_with_http_info(**kwargs)
+
+ def set_workspaces_layout(
+ self,
+ declarative_workspaces,
+ **kwargs
+ ):
+ """Set all workspaces layout # noqa: E501
+
+ Sets complete layout of workspaces, their hierarchy, models. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.set_workspaces_layout(declarative_workspaces, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ declarative_workspaces (DeclarativeWorkspaces):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ None
+ If the method is called asynchronously, returns the request
+ thread.
+ """
+ kwargs['async_req'] = kwargs.get(
+ 'async_req', False
+ )
+ kwargs['_return_http_data_only'] = kwargs.get(
+ '_return_http_data_only', True
+ )
+ kwargs['_preload_content'] = kwargs.get(
+ '_preload_content', True
+ )
+ kwargs['_request_timeout'] = kwargs.get(
+ '_request_timeout', None
+ )
+ kwargs['_check_input_type'] = kwargs.get(
+ '_check_input_type', True
+ )
+ kwargs['_check_return_type'] = kwargs.get(
+ '_check_return_type', True
+ )
+ kwargs['_spec_property_naming'] = kwargs.get(
+ '_spec_property_naming', False
+ )
+ kwargs['_content_type'] = kwargs.get(
+ '_content_type')
+ kwargs['_host_index'] = kwargs.get('_host_index')
+ kwargs['_request_auths'] = kwargs.get('_request_auths', None)
+ kwargs['declarative_workspaces'] = \
+ declarative_workspaces
+ return self.set_workspaces_layout_endpoint.call_with_http_info(**kwargs)
+
diff --git a/gooddata-api-client/gooddata_api_client/api_client.py b/gooddata-api-client/gooddata_api_client/api_client.py
new file mode 100644
index 000000000..a82d81f52
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/api_client.py
@@ -0,0 +1,897 @@
+"""
+ 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 json
+import atexit
+import mimetypes
+from multiprocessing.pool import ThreadPool
+import io
+import os
+import re
+import typing
+from urllib.parse import quote
+from urllib3.fields import RequestField
+
+
+from gooddata_api_client import rest
+from gooddata_api_client.configuration import Configuration
+from gooddata_api_client.exceptions import ApiTypeError, ApiValueError, ApiException
+from gooddata_api_client.model_utils import (
+ ModelNormal,
+ ModelSimple,
+ ModelComposed,
+ check_allowed_values,
+ check_validations,
+ date,
+ datetime,
+ deserialize_file,
+ file_type,
+ model_to_dict,
+ none_type,
+ validate_and_convert_types
+)
+
+
+class ApiClient(object):
+ """Generic API client for OpenAPI client library builds.
+
+ OpenAPI generic API client. This client handles the client-
+ server communication, and is invariant across implementations. Specifics of
+ the methods and models for each application are generated from the OpenAPI
+ templates.
+
+ NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+ Do not edit the class manually.
+
+ :param configuration: .Configuration object for this client
+ :param header_name: a header to pass when making calls to the API.
+ :param header_value: a header value to pass when making calls to
+ the API.
+ :param cookie: a cookie to include in the header when making calls
+ to the API
+ :param pool_threads: The number of threads to use for async requests
+ to the API. More threads means more concurrent API requests.
+ """
+
+ _pool = None
+
+ def __init__(self, configuration=None, header_name=None, header_value=None,
+ cookie=None, pool_threads=1):
+ if configuration is None:
+ configuration = Configuration.get_default_copy()
+ self.configuration = configuration
+ self.pool_threads = pool_threads
+
+ self.rest_client = rest.RESTClientObject(configuration)
+ self.default_headers = {}
+ if header_name is not None:
+ self.default_headers[header_name] = header_value
+ self.cookie = cookie
+ # Set default User-Agent.
+ self.user_agent = 'OpenAPI-Generator/1.1.0/python'
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ self.close()
+
+ def close(self):
+ if self._pool:
+ self._pool.close()
+ self._pool.join()
+ self._pool = None
+ if hasattr(atexit, 'unregister'):
+ atexit.unregister(self.close)
+
+ @property
+ def pool(self):
+ """Create thread pool on first request
+ avoids instantiating unused threadpool for blocking clients.
+ """
+ if self._pool is None:
+ atexit.register(self.close)
+ self._pool = ThreadPool(self.pool_threads)
+ return self._pool
+
+ @property
+ def user_agent(self):
+ """User agent for this API client"""
+ return self.default_headers['User-Agent']
+
+ @user_agent.setter
+ def user_agent(self, value):
+ self.default_headers['User-Agent'] = value
+
+ def set_default_header(self, header_name, header_value):
+ self.default_headers[header_name] = header_value
+
+ def __call_api(
+ self,
+ resource_path: str,
+ method: str,
+ path_params: typing.Optional[typing.Dict[str, typing.Any]] = None,
+ query_params: typing.Optional[typing.List[typing.Tuple[str, typing.Any]]] = None,
+ header_params: typing.Optional[typing.Dict[str, typing.Any]] = None,
+ body: typing.Optional[typing.Any] = None,
+ post_params: typing.Optional[typing.List[typing.Tuple[str, typing.Any]]] = None,
+ files: typing.Optional[typing.Dict[str, typing.List[io.IOBase]]] = None,
+ response_type: typing.Optional[typing.Tuple[typing.Any]] = None,
+ auth_settings: typing.Optional[typing.List[str]] = None,
+ _return_http_data_only: typing.Optional[bool] = None,
+ collection_formats: typing.Optional[typing.Dict[str, str]] = None,
+ _preload_content: bool = True,
+ _request_timeout: typing.Optional[typing.Union[int, float, typing.Tuple]] = None,
+ _host: typing.Optional[str] = None,
+ _check_type: typing.Optional[bool] = None,
+ _content_type: typing.Optional[str] = None,
+ _request_auths: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = None
+ ):
+
+ config = self.configuration
+
+ # header parameters
+ header_params = header_params or {}
+ header_params.update(self.default_headers)
+ if self.cookie:
+ header_params['Cookie'] = self.cookie
+ if header_params:
+ header_params = self.sanitize_for_serialization(header_params)
+ header_params = dict(self.parameters_to_tuples(header_params,
+ collection_formats))
+
+ # path parameters
+ if path_params:
+ path_params = self.sanitize_for_serialization(path_params)
+ path_params = self.parameters_to_tuples(path_params,
+ collection_formats)
+ for k, v in path_params:
+ # specified safe chars, encode everything
+ resource_path = resource_path.replace(
+ '{%s}' % k,
+ quote(str(v), safe=config.safe_chars_for_path_param)
+ )
+
+ # query parameters
+ if query_params:
+ query_params = self.sanitize_for_serialization(query_params)
+ query_params = self.parameters_to_tuples(query_params,
+ collection_formats)
+
+ # post parameters
+ if post_params or files:
+ post_params = post_params if post_params else []
+ post_params = self.sanitize_for_serialization(post_params)
+ post_params = self.parameters_to_tuples(post_params,
+ collection_formats)
+ post_params.extend(self.files_parameters(files))
+ if header_params['Content-Type'].startswith("multipart"):
+ post_params = self.parameters_to_multipart(post_params,
+ (dict))
+
+ # body
+ if body:
+ body = self.sanitize_for_serialization(body)
+
+ # auth setting
+ self.update_params_for_auth(header_params, query_params,
+ auth_settings, resource_path, method, body,
+ request_auths=_request_auths)
+
+ # request url
+ if _host is None:
+ url = self.configuration.host + resource_path
+ else:
+ # use server/host defined in path or operation instead
+ url = _host + resource_path
+
+ try:
+ # perform request and return response
+ response_data = self.request(
+ method, url, query_params=query_params, headers=header_params,
+ post_params=post_params, body=body,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout)
+ except ApiException as e:
+ e.body = e.body.decode('utf-8')
+ raise e
+
+ self.last_response = response_data
+
+ return_data = response_data
+
+ if not _preload_content:
+ return (return_data)
+ return return_data
+
+ # deserialize response data
+ if response_type:
+ if response_type != (file_type,):
+ encoding = "utf-8"
+ content_type = response_data.getheader('content-type')
+ if content_type is not None:
+ match = re.search(r"charset=([a-zA-Z\-\d]+)[\s\;]?", content_type)
+ if match:
+ encoding = match.group(1)
+ response_data.data = response_data.data.decode(encoding)
+
+ return_data = self.deserialize(
+ response_data,
+ response_type,
+ _check_type
+ )
+ else:
+ return_data = None
+
+ if _return_http_data_only:
+ return (return_data)
+ else:
+ return (return_data, response_data.status,
+ response_data.getheaders())
+
+ def parameters_to_multipart(self, params, collection_types):
+ """Get parameters as list of tuples, formatting as json if value is collection_types
+
+ :param params: Parameters as list of two-tuples
+ :param dict collection_types: Parameter collection types
+ :return: Parameters as list of tuple or urllib3.fields.RequestField
+ """
+ new_params = []
+ if collection_types is None:
+ collection_types = (dict)
+ for k, v in params.items() if isinstance(params, dict) else params: # noqa: E501
+ if isinstance(
+ v, collection_types): # v is instance of collection_type, formatting as application/json
+ v = json.dumps(v, ensure_ascii=False).encode("utf-8")
+ field = RequestField(k, v)
+ field.make_multipart(content_type="application/json; charset=utf-8")
+ new_params.append(field)
+ else:
+ new_params.append((k, v))
+ return new_params
+
+ @classmethod
+ def sanitize_for_serialization(cls, obj):
+ """Prepares data for transmission before it is sent with the rest client
+ If obj is None, return None.
+ If obj is str, int, long, float, bool, return directly.
+ If obj is datetime.datetime, datetime.date
+ convert to string in iso8601 format.
+ If obj is list, sanitize each element in the list.
+ If obj is dict, return the dict.
+ If obj is OpenAPI model, return the properties dict.
+ If obj is io.IOBase, return the bytes
+ :param obj: The data to serialize.
+ :return: The serialized form of data.
+ """
+ if isinstance(obj, (ModelNormal, ModelComposed)):
+ return {
+ key: cls.sanitize_for_serialization(val) for key,
+ val in model_to_dict(
+ obj,
+ serialize=True).items()}
+ elif isinstance(obj, io.IOBase):
+ return cls.get_file_data_and_close_file(obj)
+ elif isinstance(obj, (str, int, float, none_type, bool)):
+ return obj
+ elif isinstance(obj, (datetime, date)):
+ return obj.isoformat()
+ elif isinstance(obj, ModelSimple):
+ return cls.sanitize_for_serialization(obj.value)
+ elif isinstance(obj, (list, tuple)):
+ return [cls.sanitize_for_serialization(item) for item in obj]
+ if isinstance(obj, dict):
+ return {key: cls.sanitize_for_serialization(val) for key, val in obj.items()}
+ raise ApiValueError(
+ 'Unable to prepare type {} for serialization'.format(
+ obj.__class__.__name__))
+
+ def deserialize(self, response, response_type, _check_type):
+ """Deserializes response into an object.
+
+ :param response: RESTResponse object to be deserialized.
+ :param response_type: For the response, a tuple containing:
+ valid classes
+ a list containing valid classes (for list schemas)
+ a dict containing a tuple of valid classes as the value
+ Example values:
+ (str,)
+ (Pet,)
+ (float, none_type)
+ ([int, none_type],)
+ ({str: (bool, str, int, float, date, datetime, str, none_type)},)
+ :param _check_type: boolean, whether to check the types of the data
+ received from the server
+ :type _check_type: bool
+
+ :return: deserialized object.
+ """
+ # handle file downloading
+ # save response body into a tmp file and return the instance
+ if response_type == (file_type,):
+ content_disposition = response.getheader("Content-Disposition")
+ return deserialize_file(response.data, self.configuration,
+ content_disposition=content_disposition)
+
+ # fetch data from response object
+ try:
+ received_data = json.loads(response.data)
+ except ValueError:
+ received_data = response.data
+
+ # store our data under the key of 'received_data' so users have some
+ # context if they are deserializing a string and the data type is wrong
+ deserialized_data = validate_and_convert_types(
+ received_data,
+ response_type,
+ ['received_data'],
+ True,
+ _check_type,
+ configuration=self.configuration
+ )
+ return deserialized_data
+
+ def call_api(
+ self,
+ resource_path: str,
+ method: str,
+ path_params: typing.Optional[typing.Dict[str, typing.Any]] = None,
+ query_params: typing.Optional[typing.List[typing.Tuple[str, typing.Any]]] = None,
+ header_params: typing.Optional[typing.Dict[str, typing.Any]] = None,
+ body: typing.Optional[typing.Any] = None,
+ post_params: typing.Optional[typing.List[typing.Tuple[str, typing.Any]]] = None,
+ files: typing.Optional[typing.Dict[str, typing.List[io.IOBase]]] = None,
+ response_type: typing.Optional[typing.Tuple[typing.Any]] = None,
+ auth_settings: typing.Optional[typing.List[str]] = None,
+ async_req: typing.Optional[bool] = None,
+ _return_http_data_only: typing.Optional[bool] = None,
+ collection_formats: typing.Optional[typing.Dict[str, str]] = None,
+ _preload_content: bool = True,
+ _request_timeout: typing.Optional[typing.Union[int, float, typing.Tuple]] = None,
+ _host: typing.Optional[str] = None,
+ _check_type: typing.Optional[bool] = None,
+ _request_auths: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = None
+ ):
+ """Makes the HTTP request (synchronous) and returns deserialized data.
+
+ To make an async_req request, set the async_req parameter.
+
+ :param resource_path: Path to method endpoint.
+ :param method: Method to call.
+ :param path_params: Path parameters in the url.
+ :param query_params: Query parameters in the url.
+ :param header_params: Header parameters to be
+ placed in the request header.
+ :param body: Request body.
+ :param post_params dict: Request post form parameters,
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
+ :param auth_settings list: Auth Settings names for the request.
+ :param response_type: For the response, a tuple containing:
+ valid classes
+ a list containing valid classes (for list schemas)
+ a dict containing a tuple of valid classes as the value
+ Example values:
+ (str,)
+ (Pet,)
+ (float, none_type)
+ ([int, none_type],)
+ ({str: (bool, str, int, float, date, datetime, str, none_type)},)
+ :param files: key -> field name, value -> a list of open file
+ objects for `multipart/form-data`.
+ :type files: dict
+ :param async_req bool: execute request asynchronously
+ :type async_req: bool, optional
+ :param _return_http_data_only: response data without head status code
+ and headers
+ :type _return_http_data_only: bool, optional
+ :param collection_formats: dict of collection formats for path, query,
+ header, and post parameters.
+ :type collection_formats: dict, optional
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :type _preload_content: bool, optional
+ :param _request_timeout: 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.
+ :param _check_type: boolean describing if the data back from the server
+ should have its type checked.
+ :type _check_type: bool, optional
+ :param _request_auths: set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ :type _request_auths: list, optional
+ :return:
+ If async_req parameter is True,
+ the request will be called asynchronously.
+ The method will return the request thread.
+ If parameter async_req is False or missing,
+ then the method will return the response directly.
+ """
+ if not async_req:
+ return self.__call_api(resource_path, method,
+ path_params, query_params, header_params,
+ body, post_params, files,
+ response_type, auth_settings,
+ _return_http_data_only, collection_formats,
+ _preload_content, _request_timeout, _host,
+ _check_type, _request_auths=_request_auths)
+
+ return self.pool.apply_async(self.__call_api, (resource_path,
+ method, path_params,
+ query_params,
+ header_params, body,
+ post_params, files,
+ response_type,
+ auth_settings,
+ _return_http_data_only,
+ collection_formats,
+ _preload_content,
+ _request_timeout,
+ _host, _check_type, None, _request_auths))
+
+ def request(self, method, url, query_params=None, headers=None,
+ post_params=None, body=None, _preload_content=True,
+ _request_timeout=None):
+ """Makes the HTTP request using RESTClient."""
+ if method == "GET":
+ return self.rest_client.GET(url,
+ query_params=query_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ headers=headers)
+ elif method == "HEAD":
+ return self.rest_client.HEAD(url,
+ query_params=query_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ headers=headers)
+ elif method == "OPTIONS":
+ return self.rest_client.OPTIONS(url,
+ query_params=query_params,
+ headers=headers,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ elif method == "POST":
+ return self.rest_client.POST(url,
+ query_params=query_params,
+ headers=headers,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ elif method == "PUT":
+ return self.rest_client.PUT(url,
+ query_params=query_params,
+ headers=headers,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ elif method == "PATCH":
+ return self.rest_client.PATCH(url,
+ query_params=query_params,
+ headers=headers,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ elif method == "DELETE":
+ return self.rest_client.DELETE(url,
+ query_params=query_params,
+ headers=headers,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+ else:
+ raise ApiValueError(
+ "http method must be `GET`, `HEAD`, `OPTIONS`,"
+ " `POST`, `PATCH`, `PUT` or `DELETE`."
+ )
+
+ def parameters_to_tuples(self, params, collection_formats):
+ """Get parameters as list of tuples, formatting collections.
+
+ :param params: Parameters as dict or list of two-tuples
+ :param dict collection_formats: Parameter collection formats
+ :return: Parameters as list of tuples, collections formatted
+ """
+ new_params = []
+ if collection_formats is None:
+ collection_formats = {}
+ for k, v in params.items() if isinstance(params, dict) else params: # noqa: E501
+ if k in collection_formats:
+ collection_format = collection_formats[k]
+ if collection_format == 'multi':
+ new_params.extend((k, value) for value in v)
+ else:
+ if collection_format == 'ssv':
+ delimiter = ' '
+ elif collection_format == 'tsv':
+ delimiter = '\t'
+ elif collection_format == 'pipes':
+ delimiter = '|'
+ else: # csv is the default
+ delimiter = ','
+ new_params.append(
+ (k, delimiter.join(str(value) for value in v)))
+ else:
+ new_params.append((k, v))
+ return new_params
+
+ @staticmethod
+ def get_file_data_and_close_file(file_instance: io.IOBase) -> bytes:
+ file_data = file_instance.read()
+ file_instance.close()
+ return file_data
+
+ def files_parameters(self,
+ files: typing.Optional[typing.Dict[str,
+ typing.List[io.IOBase]]] = None):
+ """Builds form parameters.
+
+ :param files: None or a dict with key=param_name and
+ value is a list of open file objects
+ :return: List of tuples of form parameters with file data
+ """
+ if files is None:
+ return []
+
+ params = []
+ for param_name, file_instances in files.items():
+ if file_instances is None:
+ # if the file field is nullable, skip None values
+ continue
+ for file_instance in file_instances:
+ if file_instance is None:
+ # if the file field is nullable, skip None values
+ continue
+ if file_instance.closed is True:
+ raise ApiValueError(
+ "Cannot read a closed file. The passed in file_type "
+ "for %s must be open." % param_name
+ )
+ filename = os.path.basename(file_instance.name)
+ filedata = self.get_file_data_and_close_file(file_instance)
+ mimetype = (mimetypes.guess_type(filename)[0] or
+ 'application/octet-stream')
+ params.append(
+ tuple([param_name, tuple([filename, filedata, mimetype])]))
+
+ return params
+
+ def select_header_accept(self, accepts):
+ """Returns `Accept` based on an array of accepts provided.
+
+ :param accepts: List of headers.
+ :return: Accept (e.g. application/json).
+ """
+ if not accepts:
+ return
+
+ accepts = [x.lower() for x in accepts]
+
+ if 'application/json' in accepts:
+ return 'application/json'
+ else:
+ return ', '.join(accepts)
+
+ def select_header_content_type(self, content_types, method=None, body=None):
+ """Returns `Content-Type` based on an array of content_types provided.
+
+ :param content_types: List of content-types.
+ :param method: http method (e.g. POST, PATCH).
+ :param body: http body to send.
+ :return: Content-Type (e.g. application/json).
+ """
+ if not content_types:
+ return None
+
+ content_types = [x.lower() for x in content_types]
+
+ if (method == 'PATCH' and
+ 'application/json-patch+json' in content_types and
+ isinstance(body, list)):
+ return 'application/json-patch+json'
+
+ if 'application/json' in content_types or '*/*' in content_types:
+ return 'application/json'
+ else:
+ return content_types[0]
+
+ def update_params_for_auth(self, headers, queries, auth_settings,
+ resource_path, method, body, request_auths=None):
+ """Updates header and query params based on authentication setting.
+
+ :param headers: Header parameters dict to be updated.
+ :param queries: Query parameters tuple list to be updated.
+ :param auth_settings: Authentication setting identifiers list.
+ :param resource_path: A string representation of the HTTP request resource path.
+ :param method: A string representation of the HTTP request method.
+ :param body: A object representing the body of the HTTP request.
+ The object type is the return value of _encoder.default().
+ :param request_auths: if set, the provided settings will
+ override the token in the configuration.
+ """
+ if not auth_settings:
+ return
+
+ if request_auths:
+ for auth_setting in request_auths:
+ self._apply_auth_params(
+ headers, queries, resource_path, method, body, auth_setting)
+ return
+
+ for auth in auth_settings:
+ auth_setting = self.configuration.auth_settings().get(auth)
+ if auth_setting:
+ self._apply_auth_params(
+ headers, queries, resource_path, method, body, auth_setting)
+
+ def _apply_auth_params(self, headers, queries, resource_path, method, body, auth_setting):
+ if auth_setting['in'] == 'cookie':
+ headers['Cookie'] = auth_setting['key'] + "=" + auth_setting['value']
+ elif auth_setting['in'] == 'header':
+ if auth_setting['type'] != 'http-signature':
+ headers[auth_setting['key']] = auth_setting['value']
+ elif auth_setting['in'] == 'query':
+ queries.append((auth_setting['key'], auth_setting['value']))
+ else:
+ raise ApiValueError(
+ 'Authentication token must be in `query` or `header`'
+ )
+
+
+class Endpoint(object):
+ def __init__(self, settings=None, params_map=None, root_map=None,
+ headers_map=None, api_client=None, callable=None):
+ """Creates an endpoint
+
+ Args:
+ settings (dict): see below key value pairs
+ 'response_type' (tuple/None): response type
+ 'auth' (list): a list of auth type keys
+ 'endpoint_path' (str): the endpoint path
+ 'operation_id' (str): endpoint string identifier
+ 'http_method' (str): POST/PUT/PATCH/GET etc
+ 'servers' (list): list of str servers that this endpoint is at
+ params_map (dict): see below key value pairs
+ 'all' (list): list of str endpoint parameter names
+ 'required' (list): list of required parameter names
+ 'nullable' (list): list of nullable parameter names
+ 'enum' (list): list of parameters with enum values
+ 'validation' (list): list of parameters with validations
+ root_map
+ 'validations' (dict): the dict mapping endpoint parameter tuple
+ paths to their validation dictionaries
+ 'allowed_values' (dict): the dict mapping endpoint parameter
+ tuple paths to their allowed_values (enum) dictionaries
+ 'openapi_types' (dict): param_name to openapi type
+ 'attribute_map' (dict): param_name to camelCase name
+ 'location_map' (dict): param_name to 'body', 'file', 'form',
+ 'header', 'path', 'query'
+ collection_format_map (dict): param_name to `csv` etc.
+ headers_map (dict): see below key value pairs
+ 'accept' (list): list of Accept header strings
+ 'content_type' (list): list of Content-Type header strings
+ api_client (ApiClient) api client instance
+ callable (function): the function which is invoked when the
+ Endpoint is called
+ """
+ self.settings = settings
+ self.params_map = params_map
+ self.params_map['all'].extend([
+ 'async_req',
+ '_host_index',
+ '_preload_content',
+ '_request_timeout',
+ '_return_http_data_only',
+ '_check_input_type',
+ '_check_return_type',
+ '_content_type',
+ '_spec_property_naming',
+ '_request_auths'
+ ])
+ self.params_map['nullable'].extend(['_request_timeout'])
+ self.validations = root_map['validations']
+ self.allowed_values = root_map['allowed_values']
+ self.openapi_types = root_map['openapi_types']
+ extra_types = {
+ 'async_req': (bool,),
+ '_host_index': (none_type, int),
+ '_preload_content': (bool,),
+ '_request_timeout': (none_type, float, (float,), [float], int, (int,), [int]),
+ '_return_http_data_only': (bool,),
+ '_check_input_type': (bool,),
+ '_check_return_type': (bool,),
+ '_spec_property_naming': (bool,),
+ '_content_type': (none_type, str),
+ '_request_auths': (none_type, list)
+ }
+ self.openapi_types.update(extra_types)
+ self.attribute_map = root_map['attribute_map']
+ self.location_map = root_map['location_map']
+ self.collection_format_map = root_map['collection_format_map']
+ self.headers_map = headers_map
+ self.api_client = api_client
+ self.callable = callable
+
+ def __validate_inputs(self, kwargs):
+ for param in self.params_map['enum']:
+ if param in kwargs:
+ check_allowed_values(
+ self.allowed_values,
+ (param,),
+ kwargs[param]
+ )
+
+ for param in self.params_map['validation']:
+ if param in kwargs:
+ check_validations(
+ self.validations,
+ (param,),
+ kwargs[param],
+ configuration=self.api_client.configuration
+ )
+
+ if kwargs['_check_input_type'] is False:
+ return
+
+ for key, value in kwargs.items():
+ fixed_val = validate_and_convert_types(
+ value,
+ self.openapi_types[key],
+ [key],
+ kwargs['_spec_property_naming'],
+ kwargs['_check_input_type'],
+ configuration=self.api_client.configuration
+ )
+ kwargs[key] = fixed_val
+
+ def __gather_params(self, kwargs):
+ params = {
+ 'body': None,
+ 'collection_format': {},
+ 'file': {},
+ 'form': [],
+ 'header': {},
+ 'path': {},
+ 'query': []
+ }
+
+ for param_name, param_value in kwargs.items():
+ param_location = self.location_map.get(param_name)
+ if param_location is None:
+ continue
+ if param_location:
+ if param_location == 'body':
+ params['body'] = param_value
+ continue
+ base_name = self.attribute_map[param_name]
+ if (param_location == 'form' and
+ self.openapi_types[param_name] == (file_type,)):
+ params['file'][base_name] = [param_value]
+ elif (param_location == 'form' and
+ self.openapi_types[param_name] == ([file_type],)):
+ # param_value is already a list
+ params['file'][base_name] = param_value
+ elif param_location in {'form', 'query'}:
+ param_value_full = (base_name, param_value)
+ params[param_location].append(param_value_full)
+ if param_location not in {'form', 'query'}:
+ params[param_location][base_name] = param_value
+ collection_format = self.collection_format_map.get(param_name)
+ if collection_format:
+ params['collection_format'][base_name] = collection_format
+
+ return params
+
+ def __call__(self, *args, **kwargs):
+ """ This method is invoked when endpoints are called
+ Example:
+
+ api_instance = ActionsApi()
+ api_instance.all_platform_usage # this is an instance of the class Endpoint
+ api_instance.all_platform_usage() # this invokes api_instance.all_platform_usage.__call__()
+ which then invokes the callable functions stored in that endpoint at
+ api_instance.all_platform_usage.callable or self.callable in this class
+
+ """
+ return self.callable(self, *args, **kwargs)
+
+ def call_with_http_info(self, **kwargs):
+
+ try:
+ index = self.api_client.configuration.server_operation_index.get(
+ self.settings['operation_id'], self.api_client.configuration.server_index
+ ) if kwargs['_host_index'] is None else kwargs['_host_index']
+ server_variables = self.api_client.configuration.server_operation_variables.get(
+ self.settings['operation_id'], self.api_client.configuration.server_variables
+ )
+ _host = self.api_client.configuration.get_host_from_settings(
+ index, variables=server_variables, servers=self.settings['servers']
+ )
+ except IndexError:
+ if self.settings['servers']:
+ raise ApiValueError(
+ "Invalid host index. Must be 0 <= index < %s" %
+ len(self.settings['servers'])
+ )
+ _host = None
+
+ for key, value in kwargs.items():
+ if key not in self.params_map['all']:
+ raise ApiTypeError(
+ "Got an unexpected parameter '%s'"
+ " to method `%s`" %
+ (key, self.settings['operation_id'])
+ )
+ # only throw this nullable ApiValueError if _check_input_type
+ # is False, if _check_input_type==True we catch this case
+ # in self.__validate_inputs
+ if (key not in self.params_map['nullable'] and value is None
+ and kwargs['_check_input_type'] is False):
+ raise ApiValueError(
+ "Value may not be None for non-nullable parameter `%s`"
+ " when calling `%s`" %
+ (key, self.settings['operation_id'])
+ )
+
+ for key in self.params_map['required']:
+ if key not in kwargs.keys():
+ raise ApiValueError(
+ "Missing the required parameter `%s` when calling "
+ "`%s`" % (key, self.settings['operation_id'])
+ )
+
+ self.__validate_inputs(kwargs)
+
+ params = self.__gather_params(kwargs)
+
+ accept_headers_list = self.headers_map['accept']
+ if accept_headers_list:
+ params['header']['Accept'] = self.api_client.select_header_accept(
+ accept_headers_list)
+
+ if kwargs.get('_content_type'):
+ params['header']['Content-Type'] = kwargs['_content_type']
+ else:
+ content_type_headers_list = self.headers_map['content_type']
+ if content_type_headers_list:
+ if params['body'] != "":
+ content_types_list = self.api_client.select_header_content_type(
+ content_type_headers_list, self.settings['http_method'],
+ params['body'])
+ if content_types_list:
+ params['header']['Content-Type'] = content_types_list
+
+ return self.api_client.call_api(
+ self.settings['endpoint_path'], self.settings['http_method'],
+ params['path'],
+ params['query'],
+ params['header'],
+ body=params['body'],
+ post_params=params['form'],
+ files=params['file'],
+ response_type=self.settings['response_type'],
+ auth_settings=self.settings['auth'],
+ async_req=kwargs['async_req'],
+ _check_type=kwargs['_check_return_type'],
+ _return_http_data_only=kwargs['_return_http_data_only'],
+ _preload_content=kwargs['_preload_content'],
+ _request_timeout=kwargs['_request_timeout'],
+ _host=_host,
+ _request_auths=kwargs['_request_auths'],
+ collection_formats=params['collection_format'])
diff --git a/gooddata-api-client/gooddata_api_client/apis/__init__.py b/gooddata-api-client/gooddata_api_client/apis/__init__.py
new file mode 100644
index 000000000..6682dc698
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/apis/__init__.py
@@ -0,0 +1,19 @@
+
+# flake8: noqa
+
+# Import all APIs into this package.
+# If you have many APIs here with many many models used in each API this may
+# raise a `RecursionError`.
+# In order to avoid this, import only the API that you directly need like:
+#
+# from gooddata_api_client.api.actions_api import ActionsApi
+#
+# or import this package, but before doing it, use:
+#
+# import sys
+# sys.setrecursionlimit(n)
+
+# Import APIs into API package:
+from gooddata_api_client.api.actions_api import ActionsApi
+from gooddata_api_client.api.entities_api import EntitiesApi
+from gooddata_api_client.api.layout_api import LayoutApi
diff --git a/gooddata-api-client/gooddata_api_client/configuration.py b/gooddata-api-client/gooddata_api_client/configuration.py
new file mode 100644
index 000000000..a80cbd4b1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/configuration.py
@@ -0,0 +1,455 @@
+"""
+ 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 copy
+import logging
+import multiprocessing
+import sys
+import urllib3
+
+from http import client as http_client
+from gooddata_api_client.exceptions import ApiValueError
+
+
+JSON_SCHEMA_VALIDATION_KEYWORDS = {
+ 'multipleOf', 'maximum', 'exclusiveMaximum',
+ 'minimum', 'exclusiveMinimum', 'maxLength',
+ 'minLength', 'pattern', 'maxItems', 'minItems'
+}
+
+class Configuration(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+
+ Ref: https://openapi-generator.tech
+ Do not edit the class manually.
+
+ :param host: Base url
+ :param api_key: Dict to store API key(s).
+ Each entry in the dict specifies an API key.
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is the API key secret.
+ :param api_key_prefix: Dict to store API prefix (e.g. Bearer)
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is an API key prefix when generating the auth data.
+ :param username: Username for HTTP basic authentication
+ :param password: Password for HTTP basic authentication
+ :param discard_unknown_keys: Boolean value indicating whether to discard
+ unknown properties. A server may send a response that includes additional
+ properties that are not known by the client in the following scenarios:
+ 1. The OpenAPI document is incomplete, i.e. it does not match the server
+ implementation.
+ 2. The client was generated using an older version of the OpenAPI document
+ and the server has been upgraded since then.
+ If a schema in the OpenAPI document defines the additionalProperties attribute,
+ then all undeclared properties received by the server are injected into the
+ additional properties map. In that case, there are undeclared properties, and
+ nothing to discard.
+ :param disabled_client_side_validations (string): Comma-separated list of
+ JSON schema validation keywords to disable JSON schema structural validation
+ rules. The following keywords may be specified: multipleOf, maximum,
+ exclusiveMaximum, minimum, exclusiveMinimum, maxLength, minLength, pattern,
+ maxItems, minItems.
+ By default, the validation is performed for data generated locally by the client
+ and data received from the server, independent of any validation performed by
+ the server side. If the input data does not satisfy the JSON schema validation
+ rules specified in the OpenAPI document, an exception is raised.
+ If disabled_client_side_validations is set, structural validation is
+ disabled. This can be useful to troubleshoot data validation problem, such as
+ when the OpenAPI document validation rules do not match the actual API data
+ received by the server.
+ :param server_index: Index to servers configuration.
+ :param server_variables: Mapping with string values to replace variables in
+ templated server configuration. The validation of enums is performed for
+ variables with defined enum values before.
+ :param server_operation_index: Mapping from operation ID to an index to server
+ configuration.
+ :param server_operation_variables: Mapping from operation ID to a mapping with
+ string values to replace variables in templated server configuration.
+ The validation of enums is performed for variables with defined enum values before.
+ :param ssl_ca_cert: str - the path to a file of concatenated CA certificates
+ in PEM format
+
+ """
+
+ _default = None
+
+ def __init__(self, host=None,
+ api_key=None, api_key_prefix=None,
+ access_token=None,
+ username=None, password=None,
+ discard_unknown_keys=False,
+ disabled_client_side_validations="",
+ server_index=None, server_variables=None,
+ server_operation_index=None, server_operation_variables=None,
+ ssl_ca_cert=None,
+ ):
+ """Constructor
+ """
+ self._base_path = "http://localhost" if host is None else host
+ """Default Base url
+ """
+ self.server_index = 0 if server_index is None and host is None else server_index
+ self.server_operation_index = server_operation_index or {}
+ """Default server index
+ """
+ self.server_variables = server_variables or {}
+ self.server_operation_variables = server_operation_variables or {}
+ """Default server variables
+ """
+ self.temp_folder_path = None
+ """Temp file folder for downloading files
+ """
+ # Authentication Settings
+ self.access_token = access_token
+ self.api_key = {}
+ if api_key:
+ self.api_key = api_key
+ """dict to store API key(s)
+ """
+ self.api_key_prefix = {}
+ if api_key_prefix:
+ self.api_key_prefix = api_key_prefix
+ """dict to store API prefix (e.g. Bearer)
+ """
+ self.refresh_api_key_hook = None
+ """function hook to refresh API key if expired
+ """
+ self.username = username
+ """Username for HTTP basic authentication
+ """
+ self.password = password
+ """Password for HTTP basic authentication
+ """
+ self.discard_unknown_keys = discard_unknown_keys
+ self.disabled_client_side_validations = disabled_client_side_validations
+ self.logger = {}
+ """Logging Settings
+ """
+ self.logger["package_logger"] = logging.getLogger("gooddata_api_client")
+ self.logger["urllib3_logger"] = logging.getLogger("urllib3")
+ self.logger_format = '%(asctime)s %(levelname)s %(message)s'
+ """Log format
+ """
+ self.logger_stream_handler = None
+ """Log stream handler
+ """
+ self.logger_file_handler = None
+ """Log file handler
+ """
+ self.logger_file = None
+ """Debug file location
+ """
+ self.debug = False
+ """Debug switch
+ """
+
+ self.verify_ssl = True
+ """SSL/TLS verification
+ Set this to false to skip verifying SSL certificate when calling API
+ from https server.
+ """
+ self.ssl_ca_cert = ssl_ca_cert
+ """Set this to customize the certificate file to verify the peer.
+ """
+ self.cert_file = None
+ """client certificate file
+ """
+ self.key_file = None
+ """client key file
+ """
+ self.assert_hostname = None
+ """Set this to True/False to enable/disable SSL hostname verification.
+ """
+
+ self.connection_pool_maxsize = multiprocessing.cpu_count() * 5
+ """urllib3 connection pool's maximum number of connections saved
+ per pool. urllib3 uses 1 connection as default value, but this is
+ not the best value when you are making a lot of possibly parallel
+ requests to the same host, which is often the case here.
+ cpu_count * 5 is used as default value to increase performance.
+ """
+
+ self.proxy = None
+ """Proxy URL
+ """
+ self.no_proxy = None
+ """bypass proxy for host in the no_proxy list.
+ """
+ self.proxy_headers = None
+ """Proxy headers
+ """
+ self.safe_chars_for_path_param = ''
+ """Safe chars for path_param
+ """
+ self.retries = None
+ """Adding retries to override urllib3 default value 3
+ """
+ # Enable client side validation
+ self.client_side_validation = True
+
+ # Options to pass down to the underlying urllib3 socket
+ self.socket_options = None
+
+ def __deepcopy__(self, memo):
+ cls = self.__class__
+ result = cls.__new__(cls)
+ memo[id(self)] = result
+ for k, v in self.__dict__.items():
+ if k not in ('logger', 'logger_file_handler'):
+ setattr(result, k, copy.deepcopy(v, memo))
+ # shallow copy of loggers
+ result.logger = copy.copy(self.logger)
+ # use setters to configure loggers
+ result.logger_file = self.logger_file
+ result.debug = self.debug
+ return result
+
+ def __setattr__(self, name, value):
+ object.__setattr__(self, name, value)
+ if name == 'disabled_client_side_validations':
+ s = set(filter(None, value.split(',')))
+ for v in s:
+ if v not in JSON_SCHEMA_VALIDATION_KEYWORDS:
+ raise ApiValueError(
+ "Invalid keyword: '{0}''".format(v))
+ self._disabled_client_side_validations = s
+
+ @classmethod
+ def set_default(cls, default):
+ """Set default instance of configuration.
+
+ It stores default configuration, which can be
+ returned by get_default_copy method.
+
+ :param default: object of Configuration
+ """
+ cls._default = copy.deepcopy(default)
+
+ @classmethod
+ def get_default_copy(cls):
+ """Return new instance of configuration.
+
+ This method returns newly created, based on default constructor,
+ object of Configuration class or returns a copy of default
+ configuration passed by the set_default method.
+
+ :return: The configuration object.
+ """
+ if cls._default is not None:
+ return copy.deepcopy(cls._default)
+ return Configuration()
+
+ @property
+ def logger_file(self):
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ return self.__logger_file
+
+ @logger_file.setter
+ def logger_file(self, value):
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ self.__logger_file = value
+ if self.__logger_file:
+ # If set logging file,
+ # then add file handler and remove stream handler.
+ self.logger_file_handler = logging.FileHandler(self.__logger_file)
+ self.logger_file_handler.setFormatter(self.logger_formatter)
+ for _, logger in self.logger.items():
+ logger.addHandler(self.logger_file_handler)
+
+ @property
+ def debug(self):
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ return self.__debug
+
+ @debug.setter
+ def debug(self, value):
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ self.__debug = value
+ if self.__debug:
+ # if debug status is True, turn on debug logging
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.DEBUG)
+ # turn on http_client debug
+ http_client.HTTPConnection.debuglevel = 1
+ else:
+ # if debug status is False, turn off debug logging,
+ # setting log level to default `logging.WARNING`
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.WARNING)
+ # turn off http_client debug
+ http_client.HTTPConnection.debuglevel = 0
+
+ @property
+ def logger_format(self):
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ return self.__logger_format
+
+ @logger_format.setter
+ def logger_format(self, value):
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ self.__logger_format = value
+ self.logger_formatter = logging.Formatter(self.__logger_format)
+
+ def get_api_key_with_prefix(self, identifier, alias=None):
+ """Gets API key (with prefix if set).
+
+ :param identifier: The identifier of apiKey.
+ :param alias: The alternative identifier of apiKey.
+ :return: The token for api key authentication.
+ """
+ if self.refresh_api_key_hook is not None:
+ self.refresh_api_key_hook(self)
+ key = self.api_key.get(identifier, self.api_key.get(alias) if alias is not None else None)
+ if key:
+ prefix = self.api_key_prefix.get(identifier)
+ if prefix:
+ return "%s %s" % (prefix, key)
+ else:
+ return key
+
+ def get_basic_auth_token(self):
+ """Gets HTTP basic authentication header (string).
+
+ :return: The token for basic HTTP authentication.
+ """
+ username = ""
+ if self.username is not None:
+ username = self.username
+ password = ""
+ if self.password is not None:
+ password = self.password
+ return urllib3.util.make_headers(
+ basic_auth=username + ':' + password
+ ).get('authorization')
+
+ def auth_settings(self):
+ """Gets Auth Settings dict for api client.
+
+ :return: The Auth Settings information dict.
+ """
+ auth = {}
+ return auth
+
+ def to_debug_report(self):
+ """Gets the essential information for debugging.
+
+ :return: The report for debugging.
+ """
+ return "Python SDK Debug Report:\n"\
+ "OS: {env}\n"\
+ "Python Version: {pyversion}\n"\
+ "Version of the API: v0\n"\
+ "SDK Package Version: 1.1.0".\
+ format(env=sys.platform, pyversion=sys.version)
+
+ def get_host_settings(self):
+ """Gets an array of host settings
+
+ :return: An array of host settings
+ """
+ return [
+ {
+ 'url': "",
+ 'description': "GoodData.CN endpoint",
+ }
+ ]
+
+ def get_host_from_settings(self, index, variables=None, servers=None):
+ """Gets host URL based on the index and variables
+ :param index: array index of the host settings
+ :param variables: hash of variable and the corresponding value
+ :param servers: an array of host settings or None
+ :return: URL based on host settings
+ """
+ if index is None:
+ return self._base_path
+
+ variables = {} if variables is None else variables
+ servers = self.get_host_settings() if servers is None else servers
+
+ try:
+ server = servers[index]
+ except IndexError:
+ raise ValueError(
+ "Invalid index {0} when selecting the host settings. "
+ "Must be less than {1}".format(index, len(servers)))
+
+ url = server['url']
+
+ # go through variables and replace placeholders
+ for variable_name, variable in server.get('variables', {}).items():
+ used_value = variables.get(
+ variable_name, variable['default_value'])
+
+ if 'enum_values' in variable \
+ and used_value not in variable['enum_values']:
+ raise ValueError(
+ "The variable `{0}` in the host URL has invalid value "
+ "{1}. Must be {2}.".format(
+ variable_name, variables[variable_name],
+ variable['enum_values']))
+
+ url = url.replace("{" + variable_name + "}", used_value)
+
+ return url
+
+ @property
+ def host(self):
+ """Return generated host."""
+ return self.get_host_from_settings(self.server_index, variables=self.server_variables)
+
+ @host.setter
+ def host(self, value):
+ """Fix base path."""
+ self._base_path = value
+ self.server_index = None
+
+
+class ConversionConfiguration:
+ _CONFIG: Configuration = Configuration()
+
+ @classmethod
+ def get_configuration(cls):
+ return cls._CONFIG
diff --git a/gooddata-api-client/gooddata_api_client/exceptions.py b/gooddata-api-client/gooddata_api_client/exceptions.py
new file mode 100644
index 000000000..cfdbb9044
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/exceptions.py
@@ -0,0 +1,159 @@
+"""
+ 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
+"""
+
+
+class OpenApiException(Exception):
+ """The base exception class for all OpenAPIExceptions"""
+
+
+class ApiTypeError(OpenApiException, TypeError):
+ def __init__(self, msg, path_to_item=None, valid_classes=None,
+ key_type=None):
+ """ Raises an exception for TypeErrors
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list): a list of keys an indices to get to the
+ current_item
+ None if unset
+ valid_classes (tuple): the primitive classes that current item
+ should be an instance of
+ None if unset
+ key_type (bool): False if our value is a value in a dict
+ True if it is a key in a dict
+ False if our item is an item in a list
+ None if unset
+ """
+ self.path_to_item = path_to_item
+ self.valid_classes = valid_classes
+ self.key_type = key_type
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiTypeError, self).__init__(full_msg)
+
+
+class ApiValueError(OpenApiException, ValueError):
+ def __init__(self, msg, path_to_item=None):
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list) the path to the exception in the
+ received_data dict. None if unset
+ """
+
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiValueError, self).__init__(full_msg)
+
+
+class ApiAttributeError(OpenApiException, AttributeError):
+ def __init__(self, msg, path_to_item=None):
+ """
+ Raised when an attribute reference or assignment fails.
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiAttributeError, self).__init__(full_msg)
+
+
+class ApiKeyError(OpenApiException, KeyError):
+ def __init__(self, msg, path_to_item=None):
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiKeyError, self).__init__(full_msg)
+
+
+class ApiException(OpenApiException):
+
+ def __init__(self, status=None, reason=None, http_resp=None):
+ if http_resp:
+ self.status = http_resp.status
+ self.reason = http_resp.reason
+ self.body = http_resp.data
+ self.headers = http_resp.getheaders()
+ else:
+ self.status = status
+ self.reason = reason
+ self.body = None
+ self.headers = None
+
+ def __str__(self):
+ """Custom error messages for exception"""
+ error_message = "Status Code: {0}\n"\
+ "Reason: {1}\n".format(self.status, self.reason)
+ if self.headers:
+ error_message += "HTTP response headers: {0}\n".format(
+ self.headers)
+
+ if self.body:
+ error_message += "HTTP response body: {0}\n".format(self.body)
+
+ return error_message
+
+
+class NotFoundException(ApiException):
+
+ def __init__(self, status=None, reason=None, http_resp=None):
+ super(NotFoundException, self).__init__(status, reason, http_resp)
+
+
+class UnauthorizedException(ApiException):
+
+ def __init__(self, status=None, reason=None, http_resp=None):
+ super(UnauthorizedException, self).__init__(status, reason, http_resp)
+
+
+class ForbiddenException(ApiException):
+
+ def __init__(self, status=None, reason=None, http_resp=None):
+ super(ForbiddenException, self).__init__(status, reason, http_resp)
+
+
+class ServiceException(ApiException):
+
+ def __init__(self, status=None, reason=None, http_resp=None):
+ super(ServiceException, self).__init__(status, reason, http_resp)
+
+
+def render_path(path_to_item):
+ """Returns a string representation of a path"""
+ result = ""
+ for pth in path_to_item:
+ if isinstance(pth, int):
+ result += "[{0}]".format(pth)
+ else:
+ result += "['{0}']".format(pth)
+ return result
diff --git a/gooddata-api-client/gooddata_api_client/model/__init__.py b/gooddata-api-client/gooddata_api_client/model/__init__.py
new file mode 100644
index 000000000..d88284126
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/__init__.py
@@ -0,0 +1,5 @@
+# we can not import model classes here because that would create a circular
+# reference which would not work in python2
+# do not import all models into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all models from one package, import them with
+# from gooddata_api_client.models import ModelA, ModelB
diff --git a/gooddata-api-client/gooddata_api_client/model/absolute_date_filter.py b/gooddata-api-client/gooddata_api_client/model/absolute_date_filter.py
new file mode 100644
index 000000000..d676501e0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/absolute_date_filter.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.absolute_date_filter_absolute_date_filter import AbsoluteDateFilterAbsoluteDateFilter
+ globals()['AbsoluteDateFilterAbsoluteDateFilter'] = AbsoluteDateFilterAbsoluteDateFilter
+
+
+class AbsoluteDateFilter(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 {
+ 'absolute_date_filter': (AbsoluteDateFilterAbsoluteDateFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'absolute_date_filter': 'absoluteDateFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, absolute_date_filter, *args, **kwargs): # noqa: E501
+ """AbsoluteDateFilter - a model defined in OpenAPI
+
+ Args:
+ absolute_date_filter (AbsoluteDateFilterAbsoluteDateFilter):
+
+ 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.absolute_date_filter = absolute_date_filter
+ 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, absolute_date_filter, *args, **kwargs): # noqa: E501
+ """AbsoluteDateFilter - a model defined in OpenAPI
+
+ Args:
+ absolute_date_filter (AbsoluteDateFilterAbsoluteDateFilter):
+
+ 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.absolute_date_filter = absolute_date_filter
+ 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/absolute_date_filter_absolute_date_filter.py b/gooddata-api-client/gooddata_api_client/model/absolute_date_filter_absolute_date_filter.py
new file mode 100644
index 000000000..b3898a542
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/absolute_date_filter_absolute_date_filter.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.afm_object_identifier_dataset import AfmObjectIdentifierDataset
+ globals()['AfmObjectIdentifierDataset'] = AfmObjectIdentifierDataset
+
+
+class AbsoluteDateFilterAbsoluteDateFilter(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 = {
+ ('_from',): {
+ 'regex': {
+ 'pattern': r'^\d{4}-\d{1,2}-\d{1,2}( \d{1,2}:\d{1,2})?$', # noqa: E501
+ },
+ },
+ ('to',): {
+ 'regex': {
+ 'pattern': r'^\d{4}-\d{1,2}-\d{1,2}( \d{1,2}:\d{1,2})?$', # 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 {
+ 'dataset': (AfmObjectIdentifierDataset,), # noqa: E501
+ '_from': (str,), # noqa: E501
+ 'to': (str,), # noqa: E501
+ 'apply_on_result': (bool,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'dataset': 'dataset', # noqa: E501
+ '_from': 'from', # noqa: E501
+ 'to': 'to', # noqa: E501
+ 'apply_on_result': 'applyOnResult', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, dataset, _from, to, *args, **kwargs): # noqa: E501
+ """AbsoluteDateFilterAbsoluteDateFilter - a model defined in OpenAPI
+
+ Args:
+ dataset (AfmObjectIdentifierDataset):
+ _from (str):
+ to (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,)
+ apply_on_result (bool): [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.dataset = dataset
+ self._from = _from
+ self.to = to
+ 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, dataset, _from, to, *args, **kwargs): # noqa: E501
+ """AbsoluteDateFilterAbsoluteDateFilter - a model defined in OpenAPI
+
+ Args:
+ dataset (AfmObjectIdentifierDataset):
+ _from (str):
+ to (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,)
+ apply_on_result (bool): [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.dataset = dataset
+ self._from = _from
+ self.to = to
+ 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/abstract_measure_value_filter.py b/gooddata-api-client/gooddata_api_client/model/abstract_measure_value_filter.py
new file mode 100644
index 000000000..d76bd735a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/abstract_measure_value_filter.py
@@ -0,0 +1,340 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.comparison_measure_value_filter import ComparisonMeasureValueFilter
+ from gooddata_api_client.model.comparison_measure_value_filter_comparison_measure_value_filter import ComparisonMeasureValueFilterComparisonMeasureValueFilter
+ from gooddata_api_client.model.range_measure_value_filter import RangeMeasureValueFilter
+ from gooddata_api_client.model.range_measure_value_filter_range_measure_value_filter import RangeMeasureValueFilterRangeMeasureValueFilter
+ from gooddata_api_client.model.ranking_filter import RankingFilter
+ from gooddata_api_client.model.ranking_filter_ranking_filter import RankingFilterRankingFilter
+ globals()['ComparisonMeasureValueFilter'] = ComparisonMeasureValueFilter
+ globals()['ComparisonMeasureValueFilterComparisonMeasureValueFilter'] = ComparisonMeasureValueFilterComparisonMeasureValueFilter
+ globals()['RangeMeasureValueFilter'] = RangeMeasureValueFilter
+ globals()['RangeMeasureValueFilterRangeMeasureValueFilter'] = RangeMeasureValueFilterRangeMeasureValueFilter
+ globals()['RankingFilter'] = RankingFilter
+ globals()['RankingFilterRankingFilter'] = RankingFilterRankingFilter
+
+
+class AbstractMeasureValueFilter(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'comparison_measure_value_filter': (ComparisonMeasureValueFilterComparisonMeasureValueFilter,), # noqa: E501
+ 'range_measure_value_filter': (RangeMeasureValueFilterRangeMeasureValueFilter,), # noqa: E501
+ 'ranking_filter': (RankingFilterRankingFilter,), # 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
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """AbstractMeasureValueFilter - 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
+ """
+
+ _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
+ """AbstractMeasureValueFilter - 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
+ """
+
+ _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': [
+ ComparisonMeasureValueFilter,
+ RangeMeasureValueFilter,
+ RankingFilter,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/afm.py b/gooddata-api-client/gooddata_api_client/model/afm.py
new file mode 100644
index 000000000..99ced8f4f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm.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.attribute_item import AttributeItem
+ from gooddata_api_client.model.filter_definition import FilterDefinition
+ from gooddata_api_client.model.measure_item import MeasureItem
+ globals()['AttributeItem'] = AttributeItem
+ globals()['FilterDefinition'] = FilterDefinition
+ globals()['MeasureItem'] = MeasureItem
+
+
+class AFM(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 {
+ 'attributes': ([AttributeItem],), # noqa: E501
+ 'filters': ([FilterDefinition],), # noqa: E501
+ 'measures': ([MeasureItem],), # noqa: E501
+ 'aux_measures': ([MeasureItem],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'filters': 'filters', # noqa: E501
+ 'measures': 'measures', # noqa: E501
+ 'aux_measures': 'auxMeasures', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attributes, filters, measures, *args, **kwargs): # noqa: E501
+ """AFM - a model defined in OpenAPI
+
+ Args:
+ attributes ([AttributeItem]): Attributes to be used in the computation.
+ filters ([FilterDefinition]): Various filter types to filter execution result.
+ measures ([MeasureItem]): Metrics to be computed.
+
+ 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,)
+ aux_measures ([MeasureItem]): Metrics to be referenced from other AFM objects (e.g. filters) but not included in the result.. [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.attributes = attributes
+ self.filters = filters
+ self.measures = measures
+ 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, attributes, filters, measures, *args, **kwargs): # noqa: E501
+ """AFM - a model defined in OpenAPI
+
+ Args:
+ attributes ([AttributeItem]): Attributes to be used in the computation.
+ filters ([FilterDefinition]): Various filter types to filter execution result.
+ measures ([MeasureItem]): Metrics to be computed.
+
+ 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,)
+ aux_measures ([MeasureItem]): Metrics to be referenced from other AFM objects (e.g. filters) but not included in the result.. [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.attributes = attributes
+ self.filters = filters
+ self.measures = measures
+ 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/afm_execution.py b/gooddata-api-client/gooddata_api_client/model/afm_execution.py
new file mode 100644
index 000000000..e5644f277
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_execution.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.afm import AFM
+ from gooddata_api_client.model.execution_settings import ExecutionSettings
+ from gooddata_api_client.model.result_spec import ResultSpec
+ globals()['AFM'] = AFM
+ globals()['ExecutionSettings'] = ExecutionSettings
+ globals()['ResultSpec'] = ResultSpec
+
+
+class AfmExecution(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 {
+ 'execution': (AFM,), # noqa: E501
+ 'result_spec': (ResultSpec,), # noqa: E501
+ 'settings': (ExecutionSettings,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'execution': 'execution', # noqa: E501
+ 'result_spec': 'resultSpec', # noqa: E501
+ 'settings': 'settings', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, execution, result_spec, *args, **kwargs): # noqa: E501
+ """AfmExecution - a model defined in OpenAPI
+
+ Args:
+ execution (AFM):
+ result_spec (ResultSpec):
+
+ 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,)
+ settings (ExecutionSettings): [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.execution = execution
+ self.result_spec = result_spec
+ 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, execution, result_spec, *args, **kwargs): # noqa: E501
+ """AfmExecution - a model defined in OpenAPI
+
+ Args:
+ execution (AFM):
+ result_spec (ResultSpec):
+
+ 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,)
+ settings (ExecutionSettings): [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.execution = execution
+ self.result_spec = result_spec
+ 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/afm_execution_response.py b/gooddata-api-client/gooddata_api_client/model/afm_execution_response.py
new file mode 100644
index 000000000..8f7b209a2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_execution_response.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.execution_response import ExecutionResponse
+ globals()['ExecutionResponse'] = ExecutionResponse
+
+
+class AfmExecutionResponse(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 {
+ 'execution_response': (ExecutionResponse,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'execution_response': 'executionResponse', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, execution_response, *args, **kwargs): # noqa: E501
+ """AfmExecutionResponse - a model defined in OpenAPI
+
+ Args:
+ execution_response (ExecutionResponse):
+
+ 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.execution_response = execution_response
+ 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, execution_response, *args, **kwargs): # noqa: E501
+ """AfmExecutionResponse - a model defined in OpenAPI
+
+ Args:
+ execution_response (ExecutionResponse):
+
+ 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.execution_response = execution_response
+ 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/afm_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_identifier.py
new file mode 100644
index 000000000..4c6c66598
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_identifier.py
@@ -0,0 +1,334 @@
+"""
+ 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.afm_local_identifier import AfmLocalIdentifier
+ from gooddata_api_client.model.afm_object_identifier import AfmObjectIdentifier
+ from gooddata_api_client.model.afm_object_identifier_identifier import AfmObjectIdentifierIdentifier
+ globals()['AfmLocalIdentifier'] = AfmLocalIdentifier
+ globals()['AfmObjectIdentifier'] = AfmObjectIdentifier
+ globals()['AfmObjectIdentifierIdentifier'] = AfmObjectIdentifierIdentifier
+
+
+class AfmIdentifier(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 = {
+ ('local_identifier',): {
+ 'regex': {
+ 'pattern': r'^[.a-zA-Z0-9_-]+$', # 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 {
+ 'identifier': (AfmObjectIdentifierIdentifier,), # noqa: E501
+ 'local_identifier': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'identifier': 'identifier', # noqa: E501
+ 'local_identifier': 'localIdentifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """AfmIdentifier - 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,)
+ identifier (AfmObjectIdentifierIdentifier): [optional] # noqa: E501
+ local_identifier (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ 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
+ """AfmIdentifier - 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,)
+ identifier (AfmObjectIdentifierIdentifier): [optional] # noqa: E501
+ local_identifier (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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': [
+ AfmLocalIdentifier,
+ AfmObjectIdentifier,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/afm_local_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_local_identifier.py
new file mode 100644
index 000000000..173079cdf
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_local_identifier.py
@@ -0,0 +1,275 @@
+"""
+ 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 AfmLocalIdentifier(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 = {
+ ('local_identifier',): {
+ 'regex': {
+ 'pattern': r'^[.a-zA-Z0-9_-]+$', # 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 {
+ 'local_identifier': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'local_identifier': 'localIdentifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, local_identifier, *args, **kwargs): # noqa: E501
+ """AfmLocalIdentifier - a model defined in OpenAPI
+
+ Args:
+ local_identifier (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.local_identifier = local_identifier
+ 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, local_identifier, *args, **kwargs): # noqa: E501
+ """AfmLocalIdentifier - a model defined in OpenAPI
+
+ Args:
+ local_identifier (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.local_identifier = local_identifier
+ 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/afm_object_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier.py
new file mode 100644
index 000000000..b76ba6086
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier.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.afm_object_identifier_identifier import AfmObjectIdentifierIdentifier
+ globals()['AfmObjectIdentifierIdentifier'] = AfmObjectIdentifierIdentifier
+
+
+class AfmObjectIdentifier(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 {
+ 'identifier': (AfmObjectIdentifierIdentifier,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'identifier': 'identifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifier - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierIdentifier):
+
+ 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.identifier = identifier
+ 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, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifier - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierIdentifier):
+
+ 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.identifier = identifier
+ 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/afm_object_identifier_attribute.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_attribute.py
new file mode 100644
index 000000000..01fbb1a65
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_attribute.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.afm_object_identifier_attribute_identifier import AfmObjectIdentifierAttributeIdentifier
+ globals()['AfmObjectIdentifierAttributeIdentifier'] = AfmObjectIdentifierAttributeIdentifier
+
+
+class AfmObjectIdentifierAttribute(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 {
+ 'identifier': (AfmObjectIdentifierAttributeIdentifier,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'identifier': 'identifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierAttribute - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierAttributeIdentifier):
+
+ 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.identifier = identifier
+ 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, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierAttribute - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierAttributeIdentifier):
+
+ 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.identifier = identifier
+ 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/afm_object_identifier_attribute_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_attribute_identifier.py
new file mode 100644
index 000000000..cd396196e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_attribute_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 AfmObjectIdentifierAttributeIdentifier(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',): {
+ 'ATTRIBUTE': "attribute",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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
+ """AfmObjectIdentifierAttributeIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "attribute", must be one of ["attribute", ] # 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', "attribute")
+ _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
+ """AfmObjectIdentifierAttributeIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "attribute", must be one of ["attribute", ] # 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', "attribute")
+ _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/afm_object_identifier_core.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_core.py
new file mode 100644
index 000000000..9d6fe652b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_core.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.afm_object_identifier_core_identifier import AfmObjectIdentifierCoreIdentifier
+ globals()['AfmObjectIdentifierCoreIdentifier'] = AfmObjectIdentifierCoreIdentifier
+
+
+class AfmObjectIdentifierCore(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 {
+ 'identifier': (AfmObjectIdentifierCoreIdentifier,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'identifier': 'identifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierCore - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierCoreIdentifier):
+
+ 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.identifier = identifier
+ 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, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierCore - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierCoreIdentifier):
+
+ 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.identifier = identifier
+ 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/afm_object_identifier_core_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_core_identifier.py
new file mode 100644
index 000000000..b056c771d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_core_identifier.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
+
+
+
+class AfmObjectIdentifierCoreIdentifier(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',): {
+ 'ATTRIBUTE': "attribute",
+ 'LABEL': "label",
+ 'FACT': "fact",
+ 'METRIC': "metric",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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, type, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierCoreIdentifier - 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
+ """AfmObjectIdentifierCoreIdentifier - 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/afm_object_identifier_dataset.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_dataset.py
new file mode 100644
index 000000000..d64c4e801
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_dataset.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.afm_object_identifier_dataset_identifier import AfmObjectIdentifierDatasetIdentifier
+ globals()['AfmObjectIdentifierDatasetIdentifier'] = AfmObjectIdentifierDatasetIdentifier
+
+
+class AfmObjectIdentifierDataset(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 {
+ 'identifier': (AfmObjectIdentifierDatasetIdentifier,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'identifier': 'identifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierDataset - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierDatasetIdentifier):
+
+ 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.identifier = identifier
+ 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, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierDataset - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierDatasetIdentifier):
+
+ 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.identifier = identifier
+ 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/afm_object_identifier_dataset_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_dataset_identifier.py
new file mode 100644
index 000000000..f1a0f0a5c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_dataset_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 AfmObjectIdentifierDatasetIdentifier(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',): {
+ 'DATASET': "dataset",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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
+ """AfmObjectIdentifierDatasetIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "dataset", must be one of ["dataset", ] # 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', "dataset")
+ _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
+ """AfmObjectIdentifierDatasetIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "dataset", must be one of ["dataset", ] # 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', "dataset")
+ _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/afm_object_identifier_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_identifier.py
new file mode 100644
index 000000000..f321c1cda
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_identifier.py
@@ -0,0 +1,293 @@
+"""
+ 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 AfmObjectIdentifierIdentifier(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",
+ 'DASHBOARDPLUGIN': "dashboardPlugin",
+ 'DATASET': "dataset",
+ 'FACT': "fact",
+ 'LABEL': "label",
+ 'METRIC': "metric",
+ 'PROMPT': "prompt",
+ 'VISUALIZATIONOBJECT': "visualizationObject",
+ 'FILTERCONTEXT': "filterContext",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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, type, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierIdentifier - 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
+ """AfmObjectIdentifierIdentifier - 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/afm_object_identifier_label.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_label.py
new file mode 100644
index 000000000..4a4ddcedb
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_label.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.afm_object_identifier_label_identifier import AfmObjectIdentifierLabelIdentifier
+ globals()['AfmObjectIdentifierLabelIdentifier'] = AfmObjectIdentifierLabelIdentifier
+
+
+class AfmObjectIdentifierLabel(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 {
+ 'identifier': (AfmObjectIdentifierLabelIdentifier,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'identifier': 'identifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierLabel - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierLabelIdentifier):
+
+ 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.identifier = identifier
+ 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, identifier, *args, **kwargs): # noqa: E501
+ """AfmObjectIdentifierLabel - a model defined in OpenAPI
+
+ Args:
+ identifier (AfmObjectIdentifierLabelIdentifier):
+
+ 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.identifier = identifier
+ 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/afm_object_identifier_label_identifier.py b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_label_identifier.py
new file mode 100644
index 000000000..bcec434f3
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_object_identifier_label_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 AfmObjectIdentifierLabelIdentifier(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',): {
+ 'LABEL': "label",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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
+ """AfmObjectIdentifierLabelIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "label", must be one of ["label", ] # 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', "label")
+ _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
+ """AfmObjectIdentifierLabelIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "label", must be one of ["label", ] # 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', "label")
+ _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/afm_valid_objects_query.py b/gooddata-api-client/gooddata_api_client/model/afm_valid_objects_query.py
new file mode 100644
index 000000000..030af6d0a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_valid_objects_query.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.afm import AFM
+ globals()['AFM'] = AFM
+
+
+class AfmValidObjectsQuery(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 = {
+ ('types',): {
+ 'FACTS': "facts",
+ 'ATTRIBUTES': "attributes",
+ 'MEASURES': "measures",
+ 'UNRECOGNIZED': "UNRECOGNIZED",
+ },
+ }
+
+ validations = {
+ ('types',): {
+ },
+ }
+
+ @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 {
+ 'afm': (AFM,), # noqa: E501
+ 'types': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'afm': 'afm', # noqa: E501
+ 'types': 'types', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, afm, types, *args, **kwargs): # noqa: E501
+ """AfmValidObjectsQuery - a model defined in OpenAPI
+
+ Args:
+ afm (AFM):
+ types ([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.afm = afm
+ self.types = types
+ 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, afm, types, *args, **kwargs): # noqa: E501
+ """AfmValidObjectsQuery - a model defined in OpenAPI
+
+ Args:
+ afm (AFM):
+ types ([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.afm = afm
+ self.types = types
+ 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/afm_valid_objects_response.py b/gooddata-api-client/gooddata_api_client/model/afm_valid_objects_response.py
new file mode 100644
index 000000000..919e56d72
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/afm_valid_objects_response.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.rest_api_identifier import RestApiIdentifier
+ globals()['RestApiIdentifier'] = RestApiIdentifier
+
+
+class AfmValidObjectsResponse(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 {
+ 'items': ([RestApiIdentifier],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'items': 'items', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, items, *args, **kwargs): # noqa: E501
+ """AfmValidObjectsResponse - a model defined in OpenAPI
+
+ Args:
+ items ([RestApiIdentifier]):
+
+ 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.items = items
+ 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, items, *args, **kwargs): # noqa: E501
+ """AfmValidObjectsResponse - a model defined in OpenAPI
+
+ Args:
+ items ([RestApiIdentifier]):
+
+ 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.items = items
+ 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/api_entitlement.py b/gooddata-api-client/gooddata_api_client/model/api_entitlement.py
new file mode 100644
index 000000000..09bdbeb63
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/api_entitlement.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
+
+
+
+class ApiEntitlement(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 = {
+ ('name',): {
+ 'CONTRACT': "Contract",
+ 'CUSTOMTHEMING': "CustomTheming",
+ 'MANAGEDOIDC': "ManagedOIDC",
+ 'UILOCALIZATION': "UiLocalization",
+ 'TIER': "Tier",
+ 'USERCOUNT': "UserCount",
+ 'UNLIMITEDUSERS': "UnlimitedUsers",
+ 'UNLIMITEDWORKSPACES': "UnlimitedWorkspaces",
+ 'WHITELABELING': "WhiteLabeling",
+ 'WORKSPACECOUNT': "WorkspaceCount",
+ },
+ }
+
+ 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 {
+ 'name': (str,), # noqa: E501
+ 'expiry': (date,), # noqa: E501
+ 'value': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'expiry': 'expiry', # noqa: E501
+ 'value': 'value', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, *args, **kwargs): # noqa: E501
+ """ApiEntitlement - a model defined in OpenAPI
+
+ Args:
+ name (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,)
+ expiry (date): [optional] # noqa: E501
+ value (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.name = name
+ 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, name, *args, **kwargs): # noqa: E501
+ """ApiEntitlement - a model defined in OpenAPI
+
+ Args:
+ name (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,)
+ expiry (date): [optional] # noqa: E501
+ value (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.name = name
+ 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/arithmetic_measure_definition.py b/gooddata-api-client/gooddata_api_client/model/arithmetic_measure_definition.py
new file mode 100644
index 000000000..c1ddf078a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/arithmetic_measure_definition.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.arithmetic_measure_definition_arithmetic_measure import ArithmeticMeasureDefinitionArithmeticMeasure
+ globals()['ArithmeticMeasureDefinitionArithmeticMeasure'] = ArithmeticMeasureDefinitionArithmeticMeasure
+
+
+class ArithmeticMeasureDefinition(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 {
+ 'arithmetic_measure': (ArithmeticMeasureDefinitionArithmeticMeasure,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'arithmetic_measure': 'arithmeticMeasure', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, arithmetic_measure, *args, **kwargs): # noqa: E501
+ """ArithmeticMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ arithmetic_measure (ArithmeticMeasureDefinitionArithmeticMeasure):
+
+ 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.arithmetic_measure = arithmetic_measure
+ 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, arithmetic_measure, *args, **kwargs): # noqa: E501
+ """ArithmeticMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ arithmetic_measure (ArithmeticMeasureDefinitionArithmeticMeasure):
+
+ 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.arithmetic_measure = arithmetic_measure
+ 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/arithmetic_measure_definition_arithmetic_measure.py b/gooddata-api-client/gooddata_api_client/model/arithmetic_measure_definition_arithmetic_measure.py
new file mode 100644
index 000000000..f79605c74
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/arithmetic_measure_definition_arithmetic_measure.py
@@ -0,0 +1,289 @@
+"""
+ 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.afm_local_identifier import AfmLocalIdentifier
+ globals()['AfmLocalIdentifier'] = AfmLocalIdentifier
+
+
+class ArithmeticMeasureDefinitionArithmeticMeasure(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 = {
+ ('operator',): {
+ 'SUM': "SUM",
+ 'DIFFERENCE': "DIFFERENCE",
+ 'MULTIPLICATION': "MULTIPLICATION",
+ 'RATIO': "RATIO",
+ 'CHANGE': "CHANGE",
+ },
+ }
+
+ 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 {
+ 'measure_identifiers': ([AfmLocalIdentifier],), # noqa: E501
+ 'operator': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'measure_identifiers': 'measureIdentifiers', # noqa: E501
+ 'operator': 'operator', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, measure_identifiers, operator, *args, **kwargs): # noqa: E501
+ """ArithmeticMeasureDefinitionArithmeticMeasure - a model defined in OpenAPI
+
+ Args:
+ measure_identifiers ([AfmLocalIdentifier]): List of metrics to apply arithmetic operation by chosen operator.
+ operator (str): Arithmetic operator describing operation between metrics.
+
+ 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.measure_identifiers = measure_identifiers
+ self.operator = operator
+ 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, measure_identifiers, operator, *args, **kwargs): # noqa: E501
+ """ArithmeticMeasureDefinitionArithmeticMeasure - a model defined in OpenAPI
+
+ Args:
+ measure_identifiers ([AfmLocalIdentifier]): List of metrics to apply arithmetic operation by chosen operator.
+ operator (str): Arithmetic operator describing operation between metrics.
+
+ 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.measure_identifiers = measure_identifiers
+ self.operator = operator
+ 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/assignee_identifier.py b/gooddata-api-client/gooddata_api_client/model/assignee_identifier.py
new file mode 100644
index 000000000..082dc36fe
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/assignee_identifier.py
@@ -0,0 +1,280 @@
+"""
+ 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 AssigneeIdentifier(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',): {
+ 'USER': "user",
+ 'USERGROUP': "userGroup",
+ },
+ }
+
+ 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
+ """AssigneeIdentifier - 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
+ """AssigneeIdentifier - 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/attribute_execution_result_header.py b/gooddata-api-client/gooddata_api_client/model/attribute_execution_result_header.py
new file mode 100644
index 000000000..e5bdc23e7
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/attribute_execution_result_header.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.attribute_result_header import AttributeResultHeader
+ globals()['AttributeResultHeader'] = AttributeResultHeader
+
+
+class AttributeExecutionResultHeader(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 {
+ 'attribute_header': (AttributeResultHeader,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attribute_header': 'attributeHeader', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attribute_header, *args, **kwargs): # noqa: E501
+ """AttributeExecutionResultHeader - a model defined in OpenAPI
+
+ Args:
+ attribute_header (AttributeResultHeader):
+
+ 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.attribute_header = attribute_header
+ 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, attribute_header, *args, **kwargs): # noqa: E501
+ """AttributeExecutionResultHeader - a model defined in OpenAPI
+
+ Args:
+ attribute_header (AttributeResultHeader):
+
+ 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.attribute_header = attribute_header
+ 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_filter.py b/gooddata-api-client/gooddata_api_client/model/attribute_filter.py
new file mode 100644
index 000000000..d5d414e70
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/attribute_filter.py
@@ -0,0 +1,331 @@
+"""
+ 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.negative_attribute_filter import NegativeAttributeFilter
+ from gooddata_api_client.model.negative_attribute_filter_negative_attribute_filter import NegativeAttributeFilterNegativeAttributeFilter
+ from gooddata_api_client.model.positive_attribute_filter import PositiveAttributeFilter
+ from gooddata_api_client.model.positive_attribute_filter_positive_attribute_filter import PositiveAttributeFilterPositiveAttributeFilter
+ globals()['NegativeAttributeFilter'] = NegativeAttributeFilter
+ globals()['NegativeAttributeFilterNegativeAttributeFilter'] = NegativeAttributeFilterNegativeAttributeFilter
+ globals()['PositiveAttributeFilter'] = PositiveAttributeFilter
+ globals()['PositiveAttributeFilterPositiveAttributeFilter'] = PositiveAttributeFilterPositiveAttributeFilter
+
+
+class AttributeFilter(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'negative_attribute_filter': (NegativeAttributeFilterNegativeAttributeFilter,), # noqa: E501
+ 'positive_attribute_filter': (PositiveAttributeFilterPositiveAttributeFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'negative_attribute_filter': 'negativeAttributeFilter', # noqa: E501
+ 'positive_attribute_filter': 'positiveAttributeFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """AttributeFilter - 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,)
+ negative_attribute_filter (NegativeAttributeFilterNegativeAttributeFilter): [optional] # noqa: E501
+ positive_attribute_filter (PositiveAttributeFilterPositiveAttributeFilter): [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
+ """AttributeFilter - 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,)
+ negative_attribute_filter (NegativeAttributeFilterNegativeAttributeFilter): [optional] # noqa: E501
+ positive_attribute_filter (PositiveAttributeFilterPositiveAttributeFilter): [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': [
+ NegativeAttributeFilter,
+ PositiveAttributeFilter,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/attribute_filter_elements.py b/gooddata-api-client/gooddata_api_client/model/attribute_filter_elements.py
new file mode 100644
index 000000000..8fb6b5c75
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/attribute_filter_elements.py
@@ -0,0 +1,272 @@
+"""
+ 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 AttributeFilterElements(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 = {
+ ('values',): {
+ },
+ }
+
+ @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],), # 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
+ """AttributeFilterElements - a model defined in OpenAPI
+
+ Args:
+ values ([str]): Set of label values.
+
+ 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
+ """AttributeFilterElements - a model defined in OpenAPI
+
+ Args:
+ values ([str]): Set of label values.
+
+ 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/attribute_header_out.py b/gooddata-api-client/gooddata_api_client/model/attribute_header_out.py
new file mode 100644
index 000000000..2f1c3d3a2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/attribute_header_out.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.attribute_header_out_attribute_header import AttributeHeaderOutAttributeHeader
+ globals()['AttributeHeaderOutAttributeHeader'] = AttributeHeaderOutAttributeHeader
+
+
+class AttributeHeaderOut(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 {
+ 'attribute_header': (AttributeHeaderOutAttributeHeader,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attribute_header': 'attributeHeader', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attribute_header, *args, **kwargs): # noqa: E501
+ """AttributeHeaderOut - a model defined in OpenAPI
+
+ Args:
+ attribute_header (AttributeHeaderOutAttributeHeader):
+
+ 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.attribute_header = attribute_header
+ 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, attribute_header, *args, **kwargs): # noqa: E501
+ """AttributeHeaderOut - a model defined in OpenAPI
+
+ Args:
+ attribute_header (AttributeHeaderOutAttributeHeader):
+
+ 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.attribute_header = attribute_header
+ 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_header_out_attribute_header.py b/gooddata-api-client/gooddata_api_client/model/attribute_header_out_attribute_header.py
new file mode 100644
index 000000000..64965e89c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/attribute_header_out_attribute_header.py
@@ -0,0 +1,332 @@
+"""
+ 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.rest_api_identifier import RestApiIdentifier
+ globals()['RestApiIdentifier'] = RestApiIdentifier
+
+
+class AttributeHeaderOutAttributeHeader(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 = {
+ ('granularity',): {
+ 'MINUTE': "MINUTE",
+ 'HOUR': "HOUR",
+ 'DAY': "DAY",
+ 'WEEK': "WEEK",
+ 'MONTH': "MONTH",
+ 'QUARTER': "QUARTER",
+ 'YEAR': "YEAR",
+ 'MINUTE_OF_HOUR': "MINUTE_OF_HOUR",
+ 'HOUR_OF_DAY': "HOUR_OF_DAY",
+ 'DAY_OF_WEEK': "DAY_OF_WEEK",
+ 'DAY_OF_MONTH': "DAY_OF_MONTH",
+ 'DAY_OF_YEAR': "DAY_OF_YEAR",
+ 'WEEK_OF_YEAR': "WEEK_OF_YEAR",
+ 'MONTH_OF_YEAR': "MONTH_OF_YEAR",
+ 'QUARTER_OF_YEAR': "QUARTER_OF_YEAR",
+ },
+ }
+
+ validations = {
+ ('local_identifier',): {
+ 'regex': {
+ 'pattern': r'^[.a-zA-Z0-9_-]+$', # 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 {
+ 'attribute': (RestApiIdentifier,), # noqa: E501
+ 'attribute_name': (str,), # noqa: E501
+ 'label': (RestApiIdentifier,), # noqa: E501
+ 'label_name': (str,), # noqa: E501
+ 'local_identifier': (str,), # noqa: E501
+ 'primary_label': (RestApiIdentifier,), # noqa: E501
+ 'granularity': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attribute': 'attribute', # noqa: E501
+ 'attribute_name': 'attributeName', # noqa: E501
+ 'label': 'label', # noqa: E501
+ 'label_name': 'labelName', # noqa: E501
+ 'local_identifier': 'localIdentifier', # noqa: E501
+ 'primary_label': 'primaryLabel', # noqa: E501
+ 'granularity': 'granularity', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attribute, attribute_name, label, label_name, local_identifier, primary_label, *args, **kwargs): # noqa: E501
+ """AttributeHeaderOutAttributeHeader - a model defined in OpenAPI
+
+ Args:
+ attribute (RestApiIdentifier):
+ attribute_name (str):
+ label (RestApiIdentifier):
+ label_name (str):
+ local_identifier (str):
+ primary_label (RestApiIdentifier):
+
+ 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,)
+ granularity (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.attribute = attribute
+ self.attribute_name = attribute_name
+ self.label = label
+ self.label_name = label_name
+ self.local_identifier = local_identifier
+ self.primary_label = primary_label
+ 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, attribute, attribute_name, label, label_name, local_identifier, primary_label, *args, **kwargs): # noqa: E501
+ """AttributeHeaderOutAttributeHeader - a model defined in OpenAPI
+
+ Args:
+ attribute (RestApiIdentifier):
+ attribute_name (str):
+ label (RestApiIdentifier):
+ label_name (str):
+ local_identifier (str):
+ primary_label (RestApiIdentifier):
+
+ 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,)
+ granularity (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.attribute = attribute
+ self.attribute_name = attribute_name
+ self.label = label
+ self.label_name = label_name
+ self.local_identifier = local_identifier
+ self.primary_label = primary_label
+ 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_item.py b/gooddata-api-client/gooddata_api_client/model/attribute_item.py
new file mode 100644
index 000000000..731b18a1f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/attribute_item.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.afm_object_identifier_label import AfmObjectIdentifierLabel
+ globals()['AfmObjectIdentifierLabel'] = AfmObjectIdentifierLabel
+
+
+class AttributeItem(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 = {
+ ('local_identifier',): {
+ 'regex': {
+ 'pattern': r'^[.a-zA-Z0-9_-]+$', # 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 {
+ 'label': (AfmObjectIdentifierLabel,), # noqa: E501
+ 'local_identifier': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'label': 'label', # noqa: E501
+ 'local_identifier': 'localIdentifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, label, local_identifier, *args, **kwargs): # noqa: E501
+ """AttributeItem - a model defined in OpenAPI
+
+ Args:
+ label (AfmObjectIdentifierLabel):
+ local_identifier (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.label = label
+ self.local_identifier = local_identifier
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, label, local_identifier, *args, **kwargs): # noqa: E501
+ """AttributeItem - a model defined in OpenAPI
+
+ Args:
+ label (AfmObjectIdentifierLabel):
+ local_identifier (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.label = label
+ self.local_identifier = local_identifier
+ 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_result_header.py b/gooddata-api-client/gooddata_api_client/model/attribute_result_header.py
new file mode 100644
index 000000000..3e5789bb1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/attribute_result_header.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 AttributeResultHeader(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'label_value': (str,), # noqa: E501
+ 'primary_label_value': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'label_value': 'labelValue', # noqa: E501
+ 'primary_label_value': 'primaryLabelValue', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, label_value, primary_label_value, *args, **kwargs): # noqa: E501
+ """AttributeResultHeader - a model defined in OpenAPI
+
+ Args:
+ label_value (str): A value of the current attribute label.
+ primary_label_value (str): A value of the primary attribute label.
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.label_value = label_value
+ self.primary_label_value = primary_label_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, label_value, primary_label_value, *args, **kwargs): # noqa: E501
+ """AttributeResultHeader - a model defined in OpenAPI
+
+ Args:
+ label_value (str): A value of the current attribute label.
+ primary_label_value (str): A value of the primary attribute label.
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.label_value = label_value
+ self.primary_label_value = primary_label_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/column_warning.py b/gooddata-api-client/gooddata_api_client/model/column_warning.py
new file mode 100644
index 000000000..df026e612
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/column_warning.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 ColumnWarning(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'message': ([str],), # noqa: E501
+ 'name': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'message': 'message', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, message, name, *args, **kwargs): # noqa: E501
+ """ColumnWarning - a model defined in OpenAPI
+
+ Args:
+ message ([str]): Warning message related to the column.
+ name ([str]): Column name.
+
+ 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.message = message
+ self.name = name
+ 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, message, name, *args, **kwargs): # noqa: E501
+ """ColumnWarning - a model defined in OpenAPI
+
+ Args:
+ message ([str]): Warning message related to the column.
+ name ([str]): Column name.
+
+ 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.message = message
+ self.name = name
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/comparison_measure_value_filter.py b/gooddata-api-client/gooddata_api_client/model/comparison_measure_value_filter.py
new file mode 100644
index 000000000..99e9f603a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/comparison_measure_value_filter.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.comparison_measure_value_filter_comparison_measure_value_filter import ComparisonMeasureValueFilterComparisonMeasureValueFilter
+ globals()['ComparisonMeasureValueFilterComparisonMeasureValueFilter'] = ComparisonMeasureValueFilterComparisonMeasureValueFilter
+
+
+class ComparisonMeasureValueFilter(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 {
+ 'comparison_measure_value_filter': (ComparisonMeasureValueFilterComparisonMeasureValueFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'comparison_measure_value_filter': 'comparisonMeasureValueFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, comparison_measure_value_filter, *args, **kwargs): # noqa: E501
+ """ComparisonMeasureValueFilter - a model defined in OpenAPI
+
+ Args:
+ comparison_measure_value_filter (ComparisonMeasureValueFilterComparisonMeasureValueFilter):
+
+ 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.comparison_measure_value_filter = comparison_measure_value_filter
+ 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, comparison_measure_value_filter, *args, **kwargs): # noqa: E501
+ """ComparisonMeasureValueFilter - a model defined in OpenAPI
+
+ Args:
+ comparison_measure_value_filter (ComparisonMeasureValueFilterComparisonMeasureValueFilter):
+
+ 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.comparison_measure_value_filter = comparison_measure_value_filter
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/comparison_measure_value_filter_comparison_measure_value_filter.py b/gooddata-api-client/gooddata_api_client/model/comparison_measure_value_filter_comparison_measure_value_filter.py
new file mode 100644
index 000000000..614fd2410
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/comparison_measure_value_filter_comparison_measure_value_filter.py
@@ -0,0 +1,304 @@
+"""
+ 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.afm_identifier import AfmIdentifier
+ globals()['AfmIdentifier'] = AfmIdentifier
+
+
+class ComparisonMeasureValueFilterComparisonMeasureValueFilter(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 = {
+ ('operator',): {
+ 'GREATER_THAN': "GREATER_THAN",
+ 'GREATER_THAN_OR_EQUAL_TO': "GREATER_THAN_OR_EQUAL_TO",
+ 'LESS_THAN': "LESS_THAN",
+ 'LESS_THAN_OR_EQUAL_TO': "LESS_THAN_OR_EQUAL_TO",
+ 'EQUAL_TO': "EQUAL_TO",
+ 'NOT_EQUAL_TO': "NOT_EQUAL_TO",
+ },
+ }
+
+ 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 {
+ 'measure': (AfmIdentifier,), # noqa: E501
+ 'operator': (str,), # noqa: E501
+ 'value': (float,), # noqa: E501
+ 'apply_on_result': (bool,), # noqa: E501
+ 'treat_null_values_as': (float,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'measure': 'measure', # noqa: E501
+ 'operator': 'operator', # noqa: E501
+ 'value': 'value', # noqa: E501
+ 'apply_on_result': 'applyOnResult', # noqa: E501
+ 'treat_null_values_as': 'treatNullValuesAs', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, measure, operator, value, *args, **kwargs): # noqa: E501
+ """ComparisonMeasureValueFilterComparisonMeasureValueFilter - a model defined in OpenAPI
+
+ Args:
+ measure (AfmIdentifier):
+ operator (str):
+ value (float):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ apply_on_result (bool): [optional] # noqa: E501
+ treat_null_values_as (float): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.measure = measure
+ self.operator = operator
+ 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, measure, operator, value, *args, **kwargs): # noqa: E501
+ """ComparisonMeasureValueFilterComparisonMeasureValueFilter - a model defined in OpenAPI
+
+ Args:
+ measure (AfmIdentifier):
+ operator (str):
+ value (float):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ apply_on_result (bool): [optional] # noqa: E501
+ treat_null_values_as (float): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.measure = measure
+ self.operator = operator
+ 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/custom_label.py b/gooddata-api-client/gooddata_api_client/model/custom_label.py
new file mode 100644
index 000000000..09011359d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/custom_label.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 CustomLabel(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 {
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, title, *args, **kwargs): # noqa: E501
+ """CustomLabel - a model defined in OpenAPI
+
+ Args:
+ title (str): Override 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.title = title
+ 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, title, *args, **kwargs): # noqa: E501
+ """CustomLabel - a model defined in OpenAPI
+
+ Args:
+ title (str): Override 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.title = title
+ 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/custom_metric.py b/gooddata-api-client/gooddata_api_client/model/custom_metric.py
new file mode 100644
index 000000000..243703bb6
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/custom_metric.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 CustomMetric(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 {
+ 'format': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'format': 'format', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, format, title, *args, **kwargs): # noqa: E501
+ """CustomMetric - a model defined in OpenAPI
+
+ Args:
+ format (str): Format override.
+ title (str): Metric title override.
+
+ 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.format = format
+ self.title = title
+ 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, format, title, *args, **kwargs): # noqa: E501
+ """CustomMetric - a model defined in OpenAPI
+
+ Args:
+ format (str): Format override.
+ title (str): Metric title override.
+
+ 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.format = format
+ self.title = title
+ 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/custom_override.py b/gooddata-api-client/gooddata_api_client/model/custom_override.py
new file mode 100644
index 000000000..e772918cb
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/custom_override.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.custom_label import CustomLabel
+ from gooddata_api_client.model.custom_metric import CustomMetric
+ globals()['CustomLabel'] = CustomLabel
+ globals()['CustomMetric'] = CustomMetric
+
+
+class CustomOverride(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 {
+ 'labels': ({str: (CustomLabel,)},), # noqa: E501
+ 'metrics': ({str: (CustomMetric,)},), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'labels': 'labels', # noqa: E501
+ 'metrics': 'metrics', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """CustomOverride - 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,)
+ labels ({str: (CustomLabel,)}): Map of CustomLabels with keys used as placeholders in document.. [optional] # noqa: E501
+ metrics ({str: (CustomMetric,)}): Map of CustomMetrics with keys used as placeholders in document.. [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
+ """CustomOverride - 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,)
+ labels ({str: (CustomLabel,)}): Map of CustomLabels with keys used as placeholders in document.. [optional] # noqa: E501
+ metrics ({str: (CustomMetric,)}): Map of CustomMetrics with keys used as placeholders in document.. [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/data_column_locator.py b/gooddata-api-client/gooddata_api_client/model/data_column_locator.py
new file mode 100644
index 000000000..869225e3a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/data_column_locator.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 DataColumnLocator(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 {
+ 'properties': ({str: (str,)},), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'properties': 'properties', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, properties, *args, **kwargs): # noqa: E501
+ """DataColumnLocator - a model defined in OpenAPI
+
+ Args:
+ properties ({str: (str,)}): Mapping from dimension items (either 'localIdentifier' from 'AttributeItem', or \"measureGroup\") to their respective values. This effectively specifies the path (location) of the data column used for sorting. Therefore values for all dimension items must be specified.
+
+ 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.properties = properties
+ 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, properties, *args, **kwargs): # noqa: E501
+ """DataColumnLocator - a model defined in OpenAPI
+
+ Args:
+ properties ({str: (str,)}): Mapping from dimension items (either 'localIdentifier' from 'AttributeItem', or \"measureGroup\") to their respective values. This effectively specifies the path (location) of the data column used for sorting. Therefore values for all dimension items must be specified.
+
+ 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.properties = properties
+ 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/data_column_locators.py b/gooddata-api-client/gooddata_api_client/model/data_column_locators.py
new file mode 100644
index 000000000..995c87208
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/data_column_locators.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.data_column_locator import DataColumnLocator
+ globals()['DataColumnLocator'] = DataColumnLocator
+
+
+class DataColumnLocators(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 {
+ 'properties': ({str: (DataColumnLocator,)},), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'properties': 'properties', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """DataColumnLocators - 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,)
+ properties ({str: (DataColumnLocator,)}): Mapping from dimensions to data column locators.. [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
+ """DataColumnLocators - 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,)
+ properties ({str: (DataColumnLocator,)}): Mapping from dimensions to data column locators.. [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/data_source_parameter.py b/gooddata-api-client/gooddata_api_client/model/data_source_parameter.py
new file mode 100644
index 000000000..bca71d916
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/data_source_parameter.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 DataSourceParameter(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 {
+ 'name': (str,), # noqa: E501
+ 'value': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'value': 'value', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, value, *args, **kwargs): # noqa: E501
+ """DataSourceParameter - a model defined in OpenAPI
+
+ Args:
+ name (str): Parameter name.
+ value (str): Parameter 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.name = name
+ 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, name, value, *args, **kwargs): # noqa: E501
+ """DataSourceParameter - a model defined in OpenAPI
+
+ Args:
+ name (str): Parameter name.
+ value (str): Parameter 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.name = name
+ 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/data_source_schemata.py b/gooddata-api-client/gooddata_api_client/model/data_source_schemata.py
new file mode 100644
index 000000000..0ec72fce7
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/data_source_schemata.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 DataSourceSchemata(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 {
+ 'schema_names': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'schema_names': 'schemaNames', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, schema_names, *args, **kwargs): # noqa: E501
+ """DataSourceSchemata - a model defined in OpenAPI
+
+ Args:
+ schema_names ([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.schema_names = schema_names
+ 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, schema_names, *args, **kwargs): # noqa: E501
+ """DataSourceSchemata - a model defined in OpenAPI
+
+ Args:
+ schema_names ([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.schema_names = schema_names
+ 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/data_source_table_identifier.py b/gooddata-api-client/gooddata_api_client/model/data_source_table_identifier.py
new file mode 100644
index 000000000..7086e642c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/data_source_table_identifier.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class DataSourceTableIdentifier(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',): {
+ 'DATASOURCE': "dataSource",
+ },
+ }
+
+ 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 {
+ 'data_source_id': (str,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data_source_id': 'dataSourceId', # noqa: E501
+ '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, data_source_id, id, *args, **kwargs): # noqa: E501
+ """DataSourceTableIdentifier - a model defined in OpenAPI
+
+ Args:
+ data_source_id (str): Data source ID.
+ id (str): ID of table.
+
+ Keyword Args:
+ type (str): Data source entity type.. defaults to "dataSource", must be one of ["dataSource", ] # 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', "dataSource")
+ _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_source_id = data_source_id
+ 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, data_source_id, id, *args, **kwargs): # noqa: E501
+ """DataSourceTableIdentifier - a model defined in OpenAPI
+
+ Args:
+ data_source_id (str): Data source ID.
+ id (str): ID of table.
+
+ Keyword Args:
+ type (str): Data source entity type.. defaults to "dataSource", must be one of ["dataSource", ] # 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', "dataSource")
+ _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_source_id = data_source_id
+ 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/dataset_reference_identifier.py b/gooddata-api-client/gooddata_api_client/model/dataset_reference_identifier.py
new file mode 100644
index 000000000..5a6be1b66
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/dataset_reference_identifier.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 DatasetReferenceIdentifier(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',): {
+ 'DATASET': "dataset",
+ },
+ }
+
+ 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
+ """DatasetReferenceIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "dataset", must be one of ["dataset", ] # 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', "dataset")
+ _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
+ """DatasetReferenceIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "dataset", must be one of ["dataset", ] # 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', "dataset")
+ _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/date_filter.py b/gooddata-api-client/gooddata_api_client/model/date_filter.py
new file mode 100644
index 000000000..3b2e25293
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/date_filter.py
@@ -0,0 +1,331 @@
+"""
+ 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 import AbsoluteDateFilter
+ from gooddata_api_client.model.absolute_date_filter_absolute_date_filter import AbsoluteDateFilterAbsoluteDateFilter
+ from gooddata_api_client.model.relative_date_filter import RelativeDateFilter
+ from gooddata_api_client.model.relative_date_filter_relative_date_filter import RelativeDateFilterRelativeDateFilter
+ globals()['AbsoluteDateFilter'] = AbsoluteDateFilter
+ globals()['AbsoluteDateFilterAbsoluteDateFilter'] = AbsoluteDateFilterAbsoluteDateFilter
+ globals()['RelativeDateFilter'] = RelativeDateFilter
+ globals()['RelativeDateFilterRelativeDateFilter'] = RelativeDateFilterRelativeDateFilter
+
+
+class DateFilter(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'absolute_date_filter': (AbsoluteDateFilterAbsoluteDateFilter,), # noqa: E501
+ 'relative_date_filter': (RelativeDateFilterRelativeDateFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'absolute_date_filter': 'absoluteDateFilter', # noqa: E501
+ 'relative_date_filter': 'relativeDateFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """DateFilter - 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,)
+ absolute_date_filter (AbsoluteDateFilterAbsoluteDateFilter): [optional] # noqa: E501
+ relative_date_filter (RelativeDateFilterRelativeDateFilter): [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
+ """DateFilter - 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,)
+ absolute_date_filter (AbsoluteDateFilterAbsoluteDateFilter): [optional] # noqa: E501
+ relative_date_filter (RelativeDateFilterRelativeDateFilter): [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': [
+ AbsoluteDateFilter,
+ RelativeDateFilter,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_analytical_dashboard.py b/gooddata-api-client/gooddata_api_client/model/declarative_analytical_dashboard.py
new file mode 100644
index 000000000..c3ab62f57
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_analytical_dashboard.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 DeclarativeAnalyticalDashboard(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 = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeAnalyticalDashboard - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Analytical dashboard ID.
+ title (str): Analytical dashboard title.
+
+ 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,)
+ description (str): Analytical dashboard description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeAnalyticalDashboard - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Analytical dashboard ID.
+ title (str): Analytical dashboard title.
+
+ 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,)
+ description (str): Analytical dashboard description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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_analytics.py b/gooddata-api-client/gooddata_api_client/model/declarative_analytics.py
new file mode 100644
index 000000000..e5feb9629
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_analytics.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.declarative_analytics_layer import DeclarativeAnalyticsLayer
+ globals()['DeclarativeAnalyticsLayer'] = DeclarativeAnalyticsLayer
+
+
+class DeclarativeAnalytics(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 {
+ 'analytics': (DeclarativeAnalyticsLayer,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'analytics': 'analytics', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """DeclarativeAnalytics - 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,)
+ analytics (DeclarativeAnalyticsLayer): [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
+ """DeclarativeAnalytics - 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,)
+ analytics (DeclarativeAnalyticsLayer): [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/declarative_analytics_layer.py b/gooddata-api-client/gooddata_api_client/model/declarative_analytics_layer.py
new file mode 100644
index 000000000..16b2bad5a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_analytics_layer.py
@@ -0,0 +1,294 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_analytical_dashboard import DeclarativeAnalyticalDashboard
+ from gooddata_api_client.model.declarative_dashboard_plugin import DeclarativeDashboardPlugin
+ from gooddata_api_client.model.declarative_filter_context import DeclarativeFilterContext
+ from gooddata_api_client.model.declarative_metric import DeclarativeMetric
+ from gooddata_api_client.model.declarative_visualization_object import DeclarativeVisualizationObject
+ globals()['DeclarativeAnalyticalDashboard'] = DeclarativeAnalyticalDashboard
+ globals()['DeclarativeDashboardPlugin'] = DeclarativeDashboardPlugin
+ globals()['DeclarativeFilterContext'] = DeclarativeFilterContext
+ globals()['DeclarativeMetric'] = DeclarativeMetric
+ globals()['DeclarativeVisualizationObject'] = DeclarativeVisualizationObject
+
+
+class DeclarativeAnalyticsLayer(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 {
+ 'analytical_dashboards': ([DeclarativeAnalyticalDashboard],), # noqa: E501
+ 'dashboard_plugins': ([DeclarativeDashboardPlugin],), # noqa: E501
+ 'filter_contexts': ([DeclarativeFilterContext],), # noqa: E501
+ 'metrics': ([DeclarativeMetric],), # noqa: E501
+ 'visualization_objects': ([DeclarativeVisualizationObject],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'analytical_dashboards': 'analyticalDashboards', # noqa: E501
+ 'dashboard_plugins': 'dashboardPlugins', # noqa: E501
+ 'filter_contexts': 'filterContexts', # noqa: E501
+ 'metrics': 'metrics', # noqa: E501
+ 'visualization_objects': 'visualizationObjects', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """DeclarativeAnalyticsLayer - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ analytical_dashboards ([DeclarativeAnalyticalDashboard]): A list of analytical dashboards available in the model.. [optional] # noqa: E501
+ dashboard_plugins ([DeclarativeDashboardPlugin]): A list of dashboard plugins available in the model.. [optional] # noqa: E501
+ filter_contexts ([DeclarativeFilterContext]): A list of filter contexts available in the model.. [optional] # noqa: E501
+ metrics ([DeclarativeMetric]): A list of metrics available in the model.. [optional] # noqa: E501
+ visualization_objects ([DeclarativeVisualizationObject]): A list of visualization objects available in the model.. [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
+ """DeclarativeAnalyticsLayer - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ analytical_dashboards ([DeclarativeAnalyticalDashboard]): A list of analytical dashboards available in the model.. [optional] # noqa: E501
+ dashboard_plugins ([DeclarativeDashboardPlugin]): A list of dashboard plugins available in the model.. [optional] # noqa: E501
+ filter_contexts ([DeclarativeFilterContext]): A list of filter contexts available in the model.. [optional] # noqa: E501
+ metrics ([DeclarativeMetric]): A list of metrics available in the model.. [optional] # noqa: E501
+ visualization_objects ([DeclarativeVisualizationObject]): A list of visualization objects available in the model.. [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/declarative_attribute.py b/gooddata-api-client/gooddata_api_client/model/declarative_attribute.py
new file mode 100644
index 000000000..c49a498cf
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_attribute.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.declarative_label import DeclarativeLabel
+ from gooddata_api_client.model.label_identifier import LabelIdentifier
+ globals()['DeclarativeLabel'] = DeclarativeLabel
+ globals()['LabelIdentifier'] = LabelIdentifier
+
+
+class DeclarativeAttribute(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 = {
+ ('sort_direction',): {
+ 'ASC': "ASC",
+ 'DESC': "DESC",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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
+ 'labels': ([DeclarativeLabel],), # noqa: E501
+ 'source_column': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'default_view': (LabelIdentifier,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'sort_column': (str,), # noqa: E501
+ 'sort_direction': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'labels': 'labels', # noqa: E501
+ 'source_column': 'sourceColumn', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'default_view': 'defaultView', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'sort_column': 'sortColumn', # noqa: E501
+ 'sort_direction': 'sortDirection', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, labels, source_column, title, *args, **kwargs): # noqa: E501
+ """DeclarativeAttribute - a model defined in OpenAPI
+
+ Args:
+ id (str): Attribute ID.
+ labels ([DeclarativeLabel]): An array of attribute labels.
+ source_column (str): A name of the source column that is the primary label
+ title (str): Attribute title.
+
+ 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,)
+ default_view (LabelIdentifier): [optional] # noqa: E501
+ description (str): Attribute description.. [optional] # noqa: E501
+ sort_column (str): Attribute sort column.. [optional] # noqa: E501
+ sort_direction (str): Attribute sort direction.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.id = id
+ self.labels = labels
+ self.source_column = source_column
+ self.title = title
+ 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, labels, source_column, title, *args, **kwargs): # noqa: E501
+ """DeclarativeAttribute - a model defined in OpenAPI
+
+ Args:
+ id (str): Attribute ID.
+ labels ([DeclarativeLabel]): An array of attribute labels.
+ source_column (str): A name of the source column that is the primary label
+ title (str): Attribute title.
+
+ 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,)
+ default_view (LabelIdentifier): [optional] # noqa: E501
+ description (str): Attribute description.. [optional] # noqa: E501
+ sort_column (str): Attribute sort column.. [optional] # noqa: E501
+ sort_direction (str): Attribute sort direction.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.id = id
+ self.labels = labels
+ self.source_column = source_column
+ self.title = title
+ 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_color_palette.py b/gooddata-api-client/gooddata_api_client/model/declarative_color_palette.py
new file mode 100644
index 000000000..02a3e828d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_color_palette.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
+
+
+
+class DeclarativeColorPalette(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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, content, id, name, *args, **kwargs): # noqa: E501
+ """DeclarativeColorPalette - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str):
+ name (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.content = content
+ self.id = id
+ self.name = name
+ 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, content, id, name, *args, **kwargs): # noqa: E501
+ """DeclarativeColorPalette - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str):
+ name (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.content = content
+ self.id = id
+ self.name = name
+ 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_column.py b/gooddata-api-client/gooddata_api_client/model/declarative_column.py
new file mode 100644
index 000000000..eb2dbf344
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_column.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 DeclarativeColumn(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 = {
+ ('data_type',): {
+ 'INT': "INT",
+ 'STRING': "STRING",
+ 'DATE': "DATE",
+ 'NUMERIC': "NUMERIC",
+ 'TIMESTAMP': "TIMESTAMP",
+ 'TIMESTAMP_TZ': "TIMESTAMP_TZ",
+ 'BOOLEAN': "BOOLEAN",
+ },
+ }
+
+ 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 {
+ 'data_type': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'is_primary_key': (bool,), # noqa: E501
+ 'referenced_table_column': (str,), # noqa: E501
+ 'referenced_table_id': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data_type': 'dataType', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'is_primary_key': 'isPrimaryKey', # noqa: E501
+ 'referenced_table_column': 'referencedTableColumn', # noqa: E501
+ 'referenced_table_id': 'referencedTableId', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, data_type, name, *args, **kwargs): # noqa: E501
+ """DeclarativeColumn - a model defined in OpenAPI
+
+ Args:
+ data_type (str): Column type
+ name (str): Column name
+
+ 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,)
+ is_primary_key (bool): Is column part of primary key?. [optional] # noqa: E501
+ referenced_table_column (str): Referenced table (Foreign key). [optional] # noqa: E501
+ referenced_table_id (str): Referenced table (Foreign key). [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_type = data_type
+ self.name = name
+ 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_type, name, *args, **kwargs): # noqa: E501
+ """DeclarativeColumn - a model defined in OpenAPI
+
+ Args:
+ data_type (str): Column type
+ name (str): Column name
+
+ 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,)
+ is_primary_key (bool): Is column part of primary key?. [optional] # noqa: E501
+ referenced_table_column (str): Referenced table (Foreign key). [optional] # noqa: E501
+ referenced_table_id (str): Referenced table (Foreign key). [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_type = data_type
+ self.name = name
+ 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_csp_directive.py b/gooddata-api-client/gooddata_api_client/model/declarative_csp_directive.py
new file mode 100644
index 000000000..a319c69e3
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_csp_directive.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 DeclarativeCspDirective(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 {
+ 'directive': (str,), # noqa: E501
+ 'sources': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'directive': 'directive', # noqa: E501
+ 'sources': 'sources', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, directive, sources, *args, **kwargs): # noqa: E501
+ """DeclarativeCspDirective - a model defined in OpenAPI
+
+ Args:
+ directive (str):
+ sources ([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.directive = directive
+ self.sources = sources
+ 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, directive, sources, *args, **kwargs): # noqa: E501
+ """DeclarativeCspDirective - a model defined in OpenAPI
+
+ Args:
+ directive (str):
+ sources ([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.directive = directive
+ self.sources = sources
+ 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_dashboard_plugin.py b/gooddata-api-client/gooddata_api_client/model/declarative_dashboard_plugin.py
new file mode 100644
index 000000000..319a190a2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_dashboard_plugin.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 DeclarativeDashboardPlugin(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 = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeDashboardPlugin - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Dashboard plugin object ID.
+ title (str): Dashboard plugin object title.
+
+ 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,)
+ description (str): Dashboard plugin description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeDashboardPlugin - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Dashboard plugin object ID.
+ title (str): Dashboard plugin object title.
+
+ 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,)
+ description (str): Dashboard plugin description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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_data_source.py b/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py
new file mode 100644
index 000000000..99ced3db1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_data_source.py
@@ -0,0 +1,355 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_data_source_permission import DeclarativeDataSourcePermission
+ from gooddata_api_client.model.declarative_tables import DeclarativeTables
+ from gooddata_api_client.model.parameter import Parameter
+ globals()['DeclarativeDataSourcePermission'] = DeclarativeDataSourcePermission
+ globals()['DeclarativeTables'] = DeclarativeTables
+ globals()['Parameter'] = Parameter
+
+
+class DeclarativeDataSource(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',): {
+ 'POSTGRESQL': "POSTGRESQL",
+ 'REDSHIFT': "REDSHIFT",
+ 'VERTICA': "VERTICA",
+ 'SNOWFLAKE': "SNOWFLAKE",
+ 'ADS': "ADS",
+ 'BIGQUERY': "BIGQUERY",
+ 'MSSQL': "MSSQL",
+ 'PRESTO': "PRESTO",
+ 'DREMIO': "DREMIO",
+ 'DRILL': "DRILL",
+ },
+ }
+
+ 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
+ 'name': (str,), # noqa: E501
+ 'schema': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'cache_path': ([str],), # noqa: E501
+ 'decoded_parameters': ([Parameter],), # noqa: E501
+ 'enable_caching': (bool,), # noqa: E501
+ 'parameters': ([Parameter],), # noqa: E501
+ 'password': (str,), # noqa: E501
+ 'pdm': (DeclarativeTables,), # noqa: E501
+ 'permissions': ([DeclarativeDataSourcePermission],), # noqa: E501
+ 'token': (str,), # noqa: E501
+ 'url': (str,), # noqa: E501
+ 'username': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'schema': 'schema', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'cache_path': 'cachePath', # noqa: E501
+ 'decoded_parameters': 'decodedParameters', # noqa: E501
+ 'enable_caching': 'enableCaching', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
+ 'password': 'password', # noqa: E501
+ 'pdm': 'pdm', # noqa: E501
+ 'permissions': 'permissions', # noqa: E501
+ 'token': 'token', # noqa: E501
+ 'url': 'url', # noqa: E501
+ 'username': 'username', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, name, schema, type, *args, **kwargs): # noqa: E501
+ """DeclarativeDataSource - a model defined in OpenAPI
+
+ Args:
+ id (str): Data source ID.
+ name (str): Name of the data source.
+ schema (str): A scheme/database with the data.
+ type (str): Type of database.
+
+ 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,)
+ cache_path ([str]): Path to schema, where intermediate caches are stored.. [optional] # noqa: E501
+ decoded_parameters ([Parameter]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([Parameter]): [optional] # noqa: E501
+ password (str): Password for the data-source user, property is never returned back.. [optional] # noqa: E501
+ pdm (DeclarativeTables): [optional] # noqa: E501
+ permissions ([DeclarativeDataSourcePermission]): [optional] # noqa: E501
+ token (str): Token as an alternative to username and password.. [optional] # noqa: E501
+ url (str): An connection string relevant to type of database.. [optional] # noqa: E501
+ username (str): User with permission connect the data source/database.. [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.id = id
+ self.name = name
+ self.schema = schema
+ 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, name, schema, type, *args, **kwargs): # noqa: E501
+ """DeclarativeDataSource - a model defined in OpenAPI
+
+ Args:
+ id (str): Data source ID.
+ name (str): Name of the data source.
+ schema (str): A scheme/database with the data.
+ type (str): Type of database.
+
+ 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,)
+ cache_path ([str]): Path to schema, where intermediate caches are stored.. [optional] # noqa: E501
+ decoded_parameters ([Parameter]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([Parameter]): [optional] # noqa: E501
+ password (str): Password for the data-source user, property is never returned back.. [optional] # noqa: E501
+ pdm (DeclarativeTables): [optional] # noqa: E501
+ permissions ([DeclarativeDataSourcePermission]): [optional] # noqa: E501
+ token (str): Token as an alternative to username and password.. [optional] # noqa: E501
+ url (str): An connection string relevant to type of database.. [optional] # noqa: E501
+ username (str): User with permission connect the data source/database.. [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.id = id
+ self.name = name
+ self.schema = schema
+ 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_data_source_permission.py b/gooddata-api-client/gooddata_api_client/model/declarative_data_source_permission.py
new file mode 100644
index 000000000..b3dd238b1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_data_source_permission.py
@@ -0,0 +1,286 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.assignee_identifier import AssigneeIdentifier
+ globals()['AssigneeIdentifier'] = AssigneeIdentifier
+
+
+class DeclarativeDataSourcePermission(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 = {
+ ('name',): {
+ 'MANAGE': "MANAGE",
+ 'USE': "USE",
+ },
+ }
+
+ 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 {
+ 'assignee': (AssigneeIdentifier,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'assignee': 'assignee', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, assignee, name, *args, **kwargs): # noqa: E501
+ """DeclarativeDataSourcePermission - a model defined in OpenAPI
+
+ Args:
+ assignee (AssigneeIdentifier):
+ name (str): Permission name.
+
+ 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.assignee = assignee
+ self.name = name
+ 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, assignee, name, *args, **kwargs): # noqa: E501
+ """DeclarativeDataSourcePermission - a model defined in OpenAPI
+
+ Args:
+ assignee (AssigneeIdentifier):
+ name (str): Permission name.
+
+ 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.assignee = assignee
+ self.name = name
+ 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_data_sources.py b/gooddata-api-client/gooddata_api_client/model/declarative_data_sources.py
new file mode 100644
index 000000000..a7a645fb2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_data_sources.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_data_source import DeclarativeDataSource
+ globals()['DeclarativeDataSource'] = DeclarativeDataSource
+
+
+class DeclarativeDataSources(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_sources': ([DeclarativeDataSource],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data_sources': 'dataSources', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, data_sources, *args, **kwargs): # noqa: E501
+ """DeclarativeDataSources - a model defined in OpenAPI
+
+ Args:
+ data_sources ([DeclarativeDataSource]):
+
+ 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_sources = data_sources
+ 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_sources, *args, **kwargs): # noqa: E501
+ """DeclarativeDataSources - a model defined in OpenAPI
+
+ Args:
+ data_sources ([DeclarativeDataSource]):
+
+ 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_sources = data_sources
+ 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_dataset.py b/gooddata-api-client/gooddata_api_client/model/declarative_dataset.py
new file mode 100644
index 000000000..aa6519a87
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_dataset.py
@@ -0,0 +1,329 @@
+"""
+ 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.data_source_table_identifier import DataSourceTableIdentifier
+ from gooddata_api_client.model.declarative_attribute import DeclarativeAttribute
+ from gooddata_api_client.model.declarative_fact import DeclarativeFact
+ from gooddata_api_client.model.declarative_reference import DeclarativeReference
+ from gooddata_api_client.model.grain_identifier import GrainIdentifier
+ globals()['DataSourceTableIdentifier'] = DataSourceTableIdentifier
+ globals()['DeclarativeAttribute'] = DeclarativeAttribute
+ globals()['DeclarativeFact'] = DeclarativeFact
+ globals()['DeclarativeReference'] = DeclarativeReference
+ globals()['GrainIdentifier'] = GrainIdentifier
+
+
+class DeclarativeDataset(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 = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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 {
+ 'grain': ([GrainIdentifier],), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'references': ([DeclarativeReference],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'attributes': ([DeclarativeAttribute],), # noqa: E501
+ 'data_source_table_id': (DataSourceTableIdentifier,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'facts': ([DeclarativeFact],), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'grain': 'grain', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'references': 'references', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'data_source_table_id': 'dataSourceTableId', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'facts': 'facts', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, grain, id, references, title, *args, **kwargs): # noqa: E501
+ """DeclarativeDataset - a model defined in OpenAPI
+
+ Args:
+ grain ([GrainIdentifier]): An array of grain identifiers.
+ id (str): The Dataset ID. This ID is further used to refer to this instance of dataset.
+ references ([DeclarativeReference]): An array of references.
+ title (str): A dataset title.
+
+ 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,)
+ attributes ([DeclarativeAttribute]): An array of attributes.. [optional] # 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
+ tags ([str]): A list of tags.. [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.grain = grain
+ self.id = id
+ self.references = references
+ self.title = title
+ 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, grain, id, references, title, *args, **kwargs): # noqa: E501
+ """DeclarativeDataset - a model defined in OpenAPI
+
+ Args:
+ grain ([GrainIdentifier]): An array of grain identifiers.
+ id (str): The Dataset ID. This ID is further used to refer to this instance of dataset.
+ references ([DeclarativeReference]): An array of references.
+ title (str): A dataset title.
+
+ 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,)
+ attributes ([DeclarativeAttribute]): An array of attributes.. [optional] # 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
+ tags ([str]): A list of tags.. [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.grain = grain
+ self.id = id
+ self.references = references
+ self.title = title
+ 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_date_dataset.py b/gooddata-api-client/gooddata_api_client/model/declarative_date_dataset.py
new file mode 100644
index 000000000..4745aef32
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_date_dataset.py
@@ -0,0 +1,326 @@
+"""
+ 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.granularities_formatting import GranularitiesFormatting
+ globals()['GranularitiesFormatting'] = GranularitiesFormatting
+
+
+class DeclarativeDateDataset(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 = {
+ ('granularities',): {
+ 'MINUTE': "MINUTE",
+ 'HOUR': "HOUR",
+ 'DAY': "DAY",
+ 'WEEK': "WEEK",
+ 'MONTH': "MONTH",
+ 'QUARTER': "QUARTER",
+ 'YEAR': "YEAR",
+ 'MINUTE_OF_HOUR': "MINUTE_OF_HOUR",
+ 'HOUR_OF_DAY': "HOUR_OF_DAY",
+ 'DAY_OF_WEEK': "DAY_OF_WEEK",
+ 'DAY_OF_MONTH': "DAY_OF_MONTH",
+ 'DAY_OF_YEAR': "DAY_OF_YEAR",
+ 'WEEK_OF_YEAR': "WEEK_OF_YEAR",
+ 'MONTH_OF_YEAR': "MONTH_OF_YEAR",
+ 'QUARTER_OF_YEAR': "QUARTER_OF_YEAR",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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 {
+ 'granularities': ([str],), # noqa: E501
+ 'granularities_formatting': (GranularitiesFormatting,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'granularities': 'granularities', # noqa: E501
+ 'granularities_formatting': 'granularitiesFormatting', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, granularities, granularities_formatting, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeDateDataset - a model defined in OpenAPI
+
+ Args:
+ granularities ([str]): An array of date granularities. All listed granularities will be available for date dataset.
+ granularities_formatting (GranularitiesFormatting):
+ id (str): Date dataset ID.
+ title (str): Date dataset title.
+
+ 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,)
+ description (str): Date dataset description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.granularities = granularities
+ self.granularities_formatting = granularities_formatting
+ self.id = id
+ self.title = title
+ 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, granularities, granularities_formatting, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeDateDataset - a model defined in OpenAPI
+
+ Args:
+ granularities ([str]): An array of date granularities. All listed granularities will be available for date dataset.
+ granularities_formatting (GranularitiesFormatting):
+ id (str): Date dataset ID.
+ title (str): Date dataset title.
+
+ 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,)
+ description (str): Date dataset description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.granularities = granularities
+ self.granularities_formatting = granularities_formatting
+ self.id = id
+ self.title = title
+ 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_fact.py b/gooddata-api-client/gooddata_api_client/model/declarative_fact.py
new file mode 100644
index 000000000..6cfa71913
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_fact.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 DeclarativeFact(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 = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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
+ 'source_column': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'source_column': 'sourceColumn', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, source_column, title, *args, **kwargs): # noqa: E501
+ """DeclarativeFact - a model defined in OpenAPI
+
+ Args:
+ id (str): Fact ID.
+ source_column (str): A name of the source column in the table.
+ title (str): Fact title.
+
+ 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,)
+ description (str): Fact description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.id = id
+ self.source_column = source_column
+ self.title = title
+ 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, source_column, title, *args, **kwargs): # noqa: E501
+ """DeclarativeFact - a model defined in OpenAPI
+
+ Args:
+ id (str): Fact ID.
+ source_column (str): A name of the source column in the table.
+ title (str): Fact title.
+
+ 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,)
+ description (str): Fact description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.id = id
+ self.source_column = source_column
+ self.title = title
+ 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_filter_context.py b/gooddata-api-client/gooddata_api_client/model/declarative_filter_context.py
new file mode 100644
index 000000000..844a6b83d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_filter_context.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 DeclarativeFilterContext(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 = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeFilterContext - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Filter Context ID.
+ title (str): Filter Context title.
+
+ 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,)
+ description (str): Filter Context description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeFilterContext - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Filter Context ID.
+ title (str): Filter Context title.
+
+ 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,)
+ description (str): Filter Context description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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_label.py b/gooddata-api-client/gooddata_api_client/model/declarative_label.py
new file mode 100644
index 000000000..3f5460d0f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_label.py
@@ -0,0 +1,306 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class DeclarativeLabel(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 = {
+ ('value_type',): {
+ 'TEXT': "TEXT",
+ 'HYPERLINK': "HYPERLINK",
+ 'GEO': "GEO",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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
+ 'source_column': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ 'value_type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'source_column': 'sourceColumn', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ 'value_type': 'valueType', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, source_column, title, *args, **kwargs): # noqa: E501
+ """DeclarativeLabel - a model defined in OpenAPI
+
+ Args:
+ id (str): Label ID.
+ source_column (str): A name of the source column in the table.
+ title (str): Label title.
+
+ 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,)
+ description (str): Label description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [optional] # noqa: E501
+ value_type (str): Specific type of label. [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.id = id
+ self.source_column = source_column
+ self.title = title
+ 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, source_column, title, *args, **kwargs): # noqa: E501
+ """DeclarativeLabel - a model defined in OpenAPI
+
+ Args:
+ id (str): Label ID.
+ source_column (str): A name of the source column in the table.
+ title (str): Label title.
+
+ 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,)
+ description (str): Label description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [optional] # noqa: E501
+ value_type (str): Specific type of label. [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.id = id
+ self.source_column = source_column
+ self.title = title
+ 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_ldm.py b/gooddata-api-client/gooddata_api_client/model/declarative_ldm.py
new file mode 100644
index 000000000..282e13952
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_ldm.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_dataset import DeclarativeDataset
+ from gooddata_api_client.model.declarative_date_dataset import DeclarativeDateDataset
+ globals()['DeclarativeDataset'] = DeclarativeDataset
+ globals()['DeclarativeDateDataset'] = DeclarativeDateDataset
+
+
+class DeclarativeLdm(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 {
+ 'datasets': ([DeclarativeDataset],), # noqa: E501
+ 'date_instances': ([DeclarativeDateDataset],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'datasets': 'datasets', # noqa: E501
+ 'date_instances': 'dateInstances', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """DeclarativeLdm - 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,)
+ datasets ([DeclarativeDataset]): An array containing datasets.. [optional] # noqa: E501
+ date_instances ([DeclarativeDateDataset]): An array containing date-related datasets.. [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
+ """DeclarativeLdm - 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,)
+ datasets ([DeclarativeDataset]): An array containing datasets.. [optional] # noqa: E501
+ date_instances ([DeclarativeDateDataset]): An array containing date-related datasets.. [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/declarative_metric.py b/gooddata-api-client/gooddata_api_client/model/declarative_metric.py
new file mode 100644
index 000000000..a8d150e2a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_metric.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 DeclarativeMetric(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 = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeMetric - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Metric ID.
+ title (str): Metric title.
+
+ 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,)
+ description (str): Metric description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeMetric - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Metric ID.
+ title (str): Metric title.
+
+ 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,)
+ description (str): Metric description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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_model.py b/gooddata-api-client/gooddata_api_client/model/declarative_model.py
new file mode 100644
index 000000000..c5a1148bf
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_model.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.declarative_ldm import DeclarativeLdm
+ globals()['DeclarativeLdm'] = DeclarativeLdm
+
+
+class DeclarativeModel(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 {
+ 'ldm': (DeclarativeLdm,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'ldm': 'ldm', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """DeclarativeModel - 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,)
+ ldm (DeclarativeLdm): [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
+ """DeclarativeModel - 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,)
+ ldm (DeclarativeLdm): [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/declarative_organization.py b/gooddata-api-client/gooddata_api_client/model/declarative_organization.py
new file mode 100644
index 000000000..f968412f5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_organization.py
@@ -0,0 +1,306 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_data_source import DeclarativeDataSource
+ from gooddata_api_client.model.declarative_organization_info import DeclarativeOrganizationInfo
+ from gooddata_api_client.model.declarative_user import DeclarativeUser
+ from gooddata_api_client.model.declarative_user_group import DeclarativeUserGroup
+ from gooddata_api_client.model.declarative_workspace import DeclarativeWorkspace
+ from gooddata_api_client.model.declarative_workspace_data_filter import DeclarativeWorkspaceDataFilter
+ globals()['DeclarativeDataSource'] = DeclarativeDataSource
+ globals()['DeclarativeOrganizationInfo'] = DeclarativeOrganizationInfo
+ globals()['DeclarativeUser'] = DeclarativeUser
+ globals()['DeclarativeUserGroup'] = DeclarativeUserGroup
+ globals()['DeclarativeWorkspace'] = DeclarativeWorkspace
+ globals()['DeclarativeWorkspaceDataFilter'] = DeclarativeWorkspaceDataFilter
+
+
+class DeclarativeOrganization(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 {
+ 'organization': (DeclarativeOrganizationInfo,), # noqa: E501
+ 'data_sources': ([DeclarativeDataSource],), # noqa: E501
+ 'user_groups': ([DeclarativeUserGroup],), # noqa: E501
+ 'users': ([DeclarativeUser],), # noqa: E501
+ 'workspace_data_filters': ([DeclarativeWorkspaceDataFilter],), # noqa: E501
+ 'workspaces': ([DeclarativeWorkspace],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'organization': 'organization', # noqa: E501
+ 'data_sources': 'dataSources', # noqa: E501
+ 'user_groups': 'userGroups', # noqa: E501
+ 'users': 'users', # noqa: E501
+ 'workspace_data_filters': 'workspaceDataFilters', # noqa: E501
+ 'workspaces': 'workspaces', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, organization, *args, **kwargs): # noqa: E501
+ """DeclarativeOrganization - a model defined in OpenAPI
+
+ Args:
+ organization (DeclarativeOrganizationInfo):
+
+ 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,)
+ data_sources ([DeclarativeDataSource]): [optional] # noqa: E501
+ user_groups ([DeclarativeUserGroup]): [optional] # noqa: E501
+ users ([DeclarativeUser]): [optional] # noqa: E501
+ workspace_data_filters ([DeclarativeWorkspaceDataFilter]): [optional] # noqa: E501
+ workspaces ([DeclarativeWorkspace]): [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.organization = organization
+ 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, organization, *args, **kwargs): # noqa: E501
+ """DeclarativeOrganization - a model defined in OpenAPI
+
+ Args:
+ organization (DeclarativeOrganizationInfo):
+
+ 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,)
+ data_sources ([DeclarativeDataSource]): [optional] # noqa: E501
+ user_groups ([DeclarativeUserGroup]): [optional] # noqa: E501
+ users ([DeclarativeUser]): [optional] # noqa: E501
+ workspace_data_filters ([DeclarativeWorkspaceDataFilter]): [optional] # noqa: E501
+ workspaces ([DeclarativeWorkspace]): [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.organization = organization
+ 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_organization_info.py b/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py
new file mode 100644
index 000000000..8ced1195b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py
@@ -0,0 +1,343 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_color_palette import DeclarativeColorPalette
+ from gooddata_api_client.model.declarative_csp_directive import DeclarativeCspDirective
+ 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()['DeclarativeOrganizationPermission'] = DeclarativeOrganizationPermission
+ globals()['DeclarativeSetting'] = DeclarativeSetting
+ globals()['DeclarativeTheme'] = DeclarativeTheme
+
+
+class DeclarativeOrganizationInfo(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 = {
+ ('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 {
+ 'hostname': (str,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'permissions': ([DeclarativeOrganizationPermission],), # noqa: E501
+ 'color_palettes': ([DeclarativeColorPalette],), # noqa: E501
+ 'csp_directives': ([DeclarativeCspDirective],), # noqa: E501
+ 'early_access': (str,), # noqa: E501
+ 'oauth_client_id': (str,), # noqa: E501
+ 'oauth_client_secret': (str,), # noqa: E501
+ 'oauth_issuer_id': (str,), # noqa: E501
+ 'oauth_issuer_location': (str,), # noqa: E501
+ 'settings': ([DeclarativeSetting],), # noqa: E501
+ 'themes': ([DeclarativeTheme],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'hostname': 'hostname', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'permissions': 'permissions', # noqa: E501
+ 'color_palettes': 'colorPalettes', # noqa: E501
+ 'csp_directives': 'cspDirectives', # noqa: E501
+ 'early_access': 'earlyAccess', # noqa: E501
+ 'oauth_client_id': 'oauthClientId', # noqa: E501
+ 'oauth_client_secret': 'oauthClientSecret', # noqa: E501
+ 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501
+ 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501
+ 'settings': 'settings', # noqa: E501
+ 'themes': 'themes', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, hostname, id, name, permissions, *args, **kwargs): # noqa: E501
+ """DeclarativeOrganizationInfo - a model defined in OpenAPI
+
+ Args:
+ hostname (str): Formal hostname used in deployment.
+ id (str): Identifier of the organization.
+ name (str): Formal name of the organization.
+ permissions ([DeclarativeOrganizationPermission]):
+
+ 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,)
+ color_palettes ([DeclarativeColorPalette]): A list of color palettes.. [optional] # noqa: E501
+ csp_directives ([DeclarativeCspDirective]): A list of CSP directives.. [optional] # noqa: E501
+ early_access (str): Early access defined on level Organization. [optional] # noqa: E501
+ oauth_client_id (str): Identifier of the authentication provider. [optional] # noqa: E501
+ oauth_client_secret (str): Communication secret of the authentication provider (never returned back).. [optional] # noqa: E501
+ oauth_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): URI of the authentication provider.. [optional] # noqa: E501
+ settings ([DeclarativeSetting]): A list of organization settings.. [optional] # noqa: E501
+ themes ([DeclarativeTheme]): A list of themes.. [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.hostname = hostname
+ self.id = id
+ self.name = name
+ self.permissions = permissions
+ 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, hostname, id, name, permissions, *args, **kwargs): # noqa: E501
+ """DeclarativeOrganizationInfo - a model defined in OpenAPI
+
+ Args:
+ hostname (str): Formal hostname used in deployment.
+ id (str): Identifier of the organization.
+ name (str): Formal name of the organization.
+ permissions ([DeclarativeOrganizationPermission]):
+
+ 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,)
+ color_palettes ([DeclarativeColorPalette]): A list of color palettes.. [optional] # noqa: E501
+ csp_directives ([DeclarativeCspDirective]): A list of CSP directives.. [optional] # noqa: E501
+ early_access (str): Early access defined on level Organization. [optional] # noqa: E501
+ oauth_client_id (str): Identifier of the authentication provider. [optional] # noqa: E501
+ oauth_client_secret (str): Communication secret of the authentication provider (never returned back).. [optional] # noqa: E501
+ oauth_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): URI of the authentication provider.. [optional] # noqa: E501
+ settings ([DeclarativeSetting]): A list of organization settings.. [optional] # noqa: E501
+ themes ([DeclarativeTheme]): A list of themes.. [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.hostname = hostname
+ self.id = id
+ self.name = name
+ self.permissions = permissions
+ 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_organization_permission.py b/gooddata-api-client/gooddata_api_client/model/declarative_organization_permission.py
new file mode 100644
index 000000000..56218819b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_organization_permission.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.assignee_identifier import AssigneeIdentifier
+ globals()['AssigneeIdentifier'] = AssigneeIdentifier
+
+
+class DeclarativeOrganizationPermission(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 = {
+ ('name',): {
+ 'MANAGE': "MANAGE",
+ },
+ }
+
+ 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 {
+ 'assignee': (AssigneeIdentifier,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'assignee': 'assignee', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, assignee, *args, **kwargs): # noqa: E501
+ """DeclarativeOrganizationPermission - a model defined in OpenAPI
+
+ Args:
+ assignee (AssigneeIdentifier):
+
+ Keyword Args:
+ name (str): Permission name.. defaults to "MANAGE", must be one of ["MANAGE", ] # 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,)
+ """
+
+ name = kwargs.get('name', "MANAGE")
+ _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.assignee = assignee
+ self.name = name
+ 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, assignee, *args, **kwargs): # noqa: E501
+ """DeclarativeOrganizationPermission - a model defined in OpenAPI
+
+ Args:
+ assignee (AssigneeIdentifier):
+
+ Keyword Args:
+ name (str): Permission name.. defaults to "MANAGE", must be one of ["MANAGE", ] # 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,)
+ """
+
+ name = kwargs.get('name', "MANAGE")
+ _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.assignee = assignee
+ self.name = name
+ 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_pdm.py b/gooddata-api-client/gooddata_api_client/model/declarative_pdm.py
new file mode 100644
index 000000000..5011439a2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_pdm.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_tables import DeclarativeTables
+ globals()['DeclarativeTables'] = DeclarativeTables
+
+
+class DeclarativePdm(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 {
+ 'pdm': (DeclarativeTables,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'pdm': 'pdm', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, pdm, *args, **kwargs): # noqa: E501
+ """DeclarativePdm - a model defined in OpenAPI
+
+ Args:
+ pdm (DeclarativeTables):
+
+ 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.pdm = pdm
+ 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, pdm, *args, **kwargs): # noqa: E501
+ """DeclarativePdm - a model defined in OpenAPI
+
+ Args:
+ pdm (DeclarativeTables):
+
+ 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.pdm = pdm
+ 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_reference.py b/gooddata-api-client/gooddata_api_client/model/declarative_reference.py
new file mode 100644
index 000000000..8cfc2d81c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_reference.py
@@ -0,0 +1,288 @@
+"""
+ 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.reference_identifier import ReferenceIdentifier
+ globals()['ReferenceIdentifier'] = ReferenceIdentifier
+
+
+class DeclarativeReference(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 {
+ 'identifier': (ReferenceIdentifier,), # noqa: E501
+ 'multivalue': (bool,), # noqa: E501
+ 'source_columns': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'identifier': 'identifier', # noqa: E501
+ 'multivalue': 'multivalue', # noqa: E501
+ 'source_columns': 'sourceColumns', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, identifier, multivalue, source_columns, *args, **kwargs): # noqa: E501
+ """DeclarativeReference - a model defined in OpenAPI
+
+ Args:
+ identifier (ReferenceIdentifier):
+ multivalue (bool): The multi-value flag enables many-to-many cardinality for references.
+ source_columns ([str]): An array of source column names for a given 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.identifier = identifier
+ self.multivalue = multivalue
+ self.source_columns = source_columns
+ 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, identifier, multivalue, source_columns, *args, **kwargs): # noqa: E501
+ """DeclarativeReference - a model defined in OpenAPI
+
+ Args:
+ identifier (ReferenceIdentifier):
+ multivalue (bool): The multi-value flag enables many-to-many cardinality for references.
+ source_columns ([str]): An array of source column names for a given 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.identifier = identifier
+ self.multivalue = multivalue
+ self.source_columns = source_columns
+ 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_setting.py b/gooddata-api-client/gooddata_api_client/model/declarative_setting.py
new file mode 100644
index 000000000..b72a0ad97
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_setting.py
@@ -0,0 +1,279 @@
+"""
+ 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 DeclarativeSetting(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 = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'content': 'content', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """DeclarativeSetting - a model defined in OpenAPI
+
+ Args:
+ id (str): Setting 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,)
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.. [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.id = id
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, id, *args, **kwargs): # noqa: E501
+ """DeclarativeSetting - a model defined in OpenAPI
+
+ Args:
+ id (str): Setting 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,)
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.. [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.id = id
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_single_workspace_permission.py b/gooddata-api-client/gooddata_api_client/model/declarative_single_workspace_permission.py
new file mode 100644
index 000000000..ddd326707
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_single_workspace_permission.py
@@ -0,0 +1,288 @@
+"""
+ 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.assignee_identifier import AssigneeIdentifier
+ globals()['AssigneeIdentifier'] = AssigneeIdentifier
+
+
+class DeclarativeSingleWorkspacePermission(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 = {
+ ('name',): {
+ 'MANAGE': "MANAGE",
+ 'ANALYZE': "ANALYZE",
+ 'EXPORT': "EXPORT",
+ 'VIEW': "VIEW",
+ },
+ }
+
+ 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 {
+ 'assignee': (AssigneeIdentifier,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'assignee': 'assignee', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, assignee, name, *args, **kwargs): # noqa: E501
+ """DeclarativeSingleWorkspacePermission - a model defined in OpenAPI
+
+ Args:
+ assignee (AssigneeIdentifier):
+ name (str): Permission name.
+
+ 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.assignee = assignee
+ self.name = name
+ 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, assignee, name, *args, **kwargs): # noqa: E501
+ """DeclarativeSingleWorkspacePermission - a model defined in OpenAPI
+
+ Args:
+ assignee (AssigneeIdentifier):
+ name (str): Permission name.
+
+ 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.assignee = assignee
+ self.name = name
+ 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_table.py b/gooddata-api-client/gooddata_api_client/model/declarative_table.py
new file mode 100644
index 000000000..ea954a854
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_table.py
@@ -0,0 +1,303 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_column import DeclarativeColumn
+ globals()['DeclarativeColumn'] = DeclarativeColumn
+
+
+class DeclarativeTable(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 = {
+ ('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 {
+ 'columns': ([DeclarativeColumn],), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'path': ([str],), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'name_prefix': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'columns': 'columns', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'path': 'path', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'name_prefix': 'namePrefix', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, columns, id, path, type, *args, **kwargs): # noqa: E501
+ """DeclarativeTable - a model defined in OpenAPI
+
+ Args:
+ columns ([DeclarativeColumn]): An array of physical columns
+ id (str): Table id.
+ path ([str]): Path to table.
+ type (str): Table type: TABLE or VIEW.
+
+ 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,)
+ name_prefix (str): Table or view name prefix used in scan. Will be stripped when generating LDM.. [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.columns = columns
+ self.id = id
+ self.path = path
+ 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, columns, id, path, type, *args, **kwargs): # noqa: E501
+ """DeclarativeTable - a model defined in OpenAPI
+
+ Args:
+ columns ([DeclarativeColumn]): An array of physical columns
+ id (str): Table id.
+ path ([str]): Path to table.
+ type (str): Table type: TABLE or VIEW.
+
+ 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,)
+ name_prefix (str): Table or view name prefix used in scan. Will be stripped when generating LDM.. [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.columns = columns
+ self.id = id
+ self.path = path
+ 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_tables.py b/gooddata-api-client/gooddata_api_client/model/declarative_tables.py
new file mode 100644
index 000000000..0fc248659
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_tables.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_table import DeclarativeTable
+ globals()['DeclarativeTable'] = DeclarativeTable
+
+
+class DeclarativeTables(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 {
+ 'tables': ([DeclarativeTable],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'tables': 'tables', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, tables, *args, **kwargs): # noqa: E501
+ """DeclarativeTables - a model defined in OpenAPI
+
+ Args:
+ tables ([DeclarativeTable]): An array of physical database tables.
+
+ 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.tables = tables
+ 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, tables, *args, **kwargs): # noqa: E501
+ """DeclarativeTables - a model defined in OpenAPI
+
+ Args:
+ tables ([DeclarativeTable]): An array of physical database tables.
+
+ 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.tables = tables
+ 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_theme.py b/gooddata-api-client/gooddata_api_client/model/declarative_theme.py
new file mode 100644
index 000000000..7b40d1025
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_theme.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
+
+
+
+class DeclarativeTheme(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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, content, id, name, *args, **kwargs): # noqa: E501
+ """DeclarativeTheme - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str):
+ name (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.content = content
+ self.id = id
+ self.name = name
+ 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, content, id, name, *args, **kwargs): # noqa: E501
+ """DeclarativeTheme - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str):
+ name (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.content = content
+ self.id = id
+ self.name = name
+ 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_user.py b/gooddata-api-client/gooddata_api_client/model/declarative_user.py
new file mode 100644
index 000000000..a53689426
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_user.py
@@ -0,0 +1,295 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_setting import DeclarativeSetting
+ from gooddata_api_client.model.user_group_identifier import UserGroupIdentifier
+ globals()['DeclarativeSetting'] = DeclarativeSetting
+ globals()['UserGroupIdentifier'] = UserGroupIdentifier
+
+
+class DeclarativeUser(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 = {
+ ('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
+ 'auth_id': (str,), # noqa: E501
+ 'settings': ([DeclarativeSetting],), # noqa: E501
+ 'user_groups': ([UserGroupIdentifier],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'auth_id': 'authId', # noqa: E501
+ 'settings': 'settings', # noqa: E501
+ 'user_groups': 'userGroups', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """DeclarativeUser - a model defined in OpenAPI
+
+ Args:
+ id (str): User identifier.
+
+ 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,)
+ auth_id (str): User identification in the authentication manager.. [optional] # noqa: E501
+ settings ([DeclarativeSetting]): A list of user settings.. [optional] # noqa: E501
+ user_groups ([UserGroupIdentifier]): [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.id = id
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, id, *args, **kwargs): # noqa: E501
+ """DeclarativeUser - a model defined in OpenAPI
+
+ Args:
+ id (str): User identifier.
+
+ 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,)
+ auth_id (str): User identification in the authentication manager.. [optional] # noqa: E501
+ settings ([DeclarativeSetting]): A list of user settings.. [optional] # noqa: E501
+ user_groups ([UserGroupIdentifier]): [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.id = id
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_user_group.py b/gooddata-api-client/gooddata_api_client/model/declarative_user_group.py
new file mode 100644
index 000000000..320e5588f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_user_group.py
@@ -0,0 +1,285 @@
+"""
+ 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.user_group_identifier import UserGroupIdentifier
+ globals()['UserGroupIdentifier'] = UserGroupIdentifier
+
+
+class DeclarativeUserGroup(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 = {
+ ('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
+ 'parents': ([UserGroupIdentifier],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'parents': 'parents', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """DeclarativeUserGroup - a model defined in OpenAPI
+
+ Args:
+ id (str): UserGroup identifier.
+
+ 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,)
+ parents ([UserGroupIdentifier]): [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.id = id
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, id, *args, **kwargs): # noqa: E501
+ """DeclarativeUserGroup - a model defined in OpenAPI
+
+ Args:
+ id (str): UserGroup identifier.
+
+ 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,)
+ parents ([UserGroupIdentifier]): [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.id = id
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_user_groups.py b/gooddata-api-client/gooddata_api_client/model/declarative_user_groups.py
new file mode 100644
index 000000000..9d04e1228
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_user_groups.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_user_group import DeclarativeUserGroup
+ globals()['DeclarativeUserGroup'] = DeclarativeUserGroup
+
+
+class DeclarativeUserGroups(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 {
+ 'user_groups': ([DeclarativeUserGroup],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'user_groups': 'userGroups', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, user_groups, *args, **kwargs): # noqa: E501
+ """DeclarativeUserGroups - a model defined in OpenAPI
+
+ Args:
+ user_groups ([DeclarativeUserGroup]):
+
+ 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.user_groups = user_groups
+ 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, user_groups, *args, **kwargs): # noqa: E501
+ """DeclarativeUserGroups - a model defined in OpenAPI
+
+ Args:
+ user_groups ([DeclarativeUserGroup]):
+
+ 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.user_groups = user_groups
+ 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_users.py b/gooddata-api-client/gooddata_api_client/model/declarative_users.py
new file mode 100644
index 000000000..fe5ec8ef0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_users.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_user import DeclarativeUser
+ globals()['DeclarativeUser'] = DeclarativeUser
+
+
+class DeclarativeUsers(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 {
+ 'users': ([DeclarativeUser],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'users': 'users', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, users, *args, **kwargs): # noqa: E501
+ """DeclarativeUsers - a model defined in OpenAPI
+
+ Args:
+ users ([DeclarativeUser]):
+
+ 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.users = users
+ 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, users, *args, **kwargs): # noqa: E501
+ """DeclarativeUsers - a model defined in OpenAPI
+
+ Args:
+ users ([DeclarativeUser]):
+
+ 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.users = users
+ 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_users_user_groups.py b/gooddata-api-client/gooddata_api_client/model/declarative_users_user_groups.py
new file mode 100644
index 000000000..f16386139
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_users_user_groups.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_user import DeclarativeUser
+ from gooddata_api_client.model.declarative_user_group import DeclarativeUserGroup
+ globals()['DeclarativeUser'] = DeclarativeUser
+ globals()['DeclarativeUserGroup'] = DeclarativeUserGroup
+
+
+class DeclarativeUsersUserGroups(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 {
+ 'user_groups': ([DeclarativeUserGroup],), # noqa: E501
+ 'users': ([DeclarativeUser],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'user_groups': 'userGroups', # noqa: E501
+ 'users': 'users', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, user_groups, users, *args, **kwargs): # noqa: E501
+ """DeclarativeUsersUserGroups - a model defined in OpenAPI
+
+ Args:
+ user_groups ([DeclarativeUserGroup]):
+ users ([DeclarativeUser]):
+
+ 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.user_groups = user_groups
+ self.users = users
+ 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, user_groups, users, *args, **kwargs): # noqa: E501
+ """DeclarativeUsersUserGroups - a model defined in OpenAPI
+
+ Args:
+ user_groups ([DeclarativeUserGroup]):
+ users ([DeclarativeUser]):
+
+ 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.user_groups = user_groups
+ self.users = users
+ 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_visualization_object.py b/gooddata-api-client/gooddata_api_client/model/declarative_visualization_object.py
new file mode 100644
index 000000000..6434d953f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_visualization_object.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 DeclarativeVisualizationObject(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 = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501
+ },
+ },
+ ('tags',): {
+ },
+ }
+
+ @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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeVisualizationObject - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Visualization object ID.
+ title (str): Visualization object title.
+
+ 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,)
+ description (str): Visualization object description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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, content, id, title, *args, **kwargs): # noqa: E501
+ """DeclarativeVisualizationObject - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
+ id (str): Visualization object ID.
+ title (str): Visualization object title.
+
+ 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,)
+ description (str): Visualization object description.. [optional] # noqa: E501
+ tags ([str]): A list of tags.. [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.content = content
+ self.id = id
+ self.title = title
+ 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_workspace.py b/gooddata-api-client/gooddata_api_client/model/declarative_workspace.py
new file mode 100644
index 000000000..653264a79
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_workspace.py
@@ -0,0 +1,323 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_setting import DeclarativeSetting
+ from gooddata_api_client.model.declarative_single_workspace_permission import DeclarativeSingleWorkspacePermission
+ from gooddata_api_client.model.declarative_workspace_hierarchy_permission import DeclarativeWorkspaceHierarchyPermission
+ from gooddata_api_client.model.declarative_workspace_model import DeclarativeWorkspaceModel
+ from gooddata_api_client.model.workspace_identifier import WorkspaceIdentifier
+ globals()['DeclarativeSetting'] = DeclarativeSetting
+ globals()['DeclarativeSingleWorkspacePermission'] = DeclarativeSingleWorkspacePermission
+ globals()['DeclarativeWorkspaceHierarchyPermission'] = DeclarativeWorkspaceHierarchyPermission
+ globals()['DeclarativeWorkspaceModel'] = DeclarativeWorkspaceModel
+ globals()['WorkspaceIdentifier'] = WorkspaceIdentifier
+
+
+class DeclarativeWorkspace(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 = {
+ ('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
+ 'name': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'early_access': (str,), # noqa: E501
+ 'hierarchy_permissions': ([DeclarativeWorkspaceHierarchyPermission],), # noqa: E501
+ 'model': (DeclarativeWorkspaceModel,), # noqa: E501
+ 'parent': (WorkspaceIdentifier,), # noqa: E501
+ 'permissions': ([DeclarativeSingleWorkspacePermission],), # noqa: E501
+ 'settings': ([DeclarativeSetting],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'early_access': 'earlyAccess', # noqa: E501
+ 'hierarchy_permissions': 'hierarchyPermissions', # noqa: E501
+ 'model': 'model', # noqa: E501
+ 'parent': 'parent', # noqa: E501
+ 'permissions': 'permissions', # noqa: E501
+ 'settings': 'settings', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, name, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspace - a model defined in OpenAPI
+
+ Args:
+ id (str): Identifier of a workspace
+ name (str): Name of a workspace to view.
+
+ 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,)
+ description (str): Description of the workspace. [optional] # noqa: E501
+ early_access (str): Early access defined on level Workspace. [optional] # noqa: E501
+ hierarchy_permissions ([DeclarativeWorkspaceHierarchyPermission]): [optional] # noqa: E501
+ model (DeclarativeWorkspaceModel): [optional] # noqa: E501
+ parent (WorkspaceIdentifier): [optional] # noqa: E501
+ permissions ([DeclarativeSingleWorkspacePermission]): [optional] # noqa: E501
+ settings ([DeclarativeSetting]): A list of workspace settings.. [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.id = id
+ self.name = name
+ 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, name, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspace - a model defined in OpenAPI
+
+ Args:
+ id (str): Identifier of a workspace
+ name (str): Name of a workspace to view.
+
+ 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,)
+ description (str): Description of the workspace. [optional] # noqa: E501
+ early_access (str): Early access defined on level Workspace. [optional] # noqa: E501
+ hierarchy_permissions ([DeclarativeWorkspaceHierarchyPermission]): [optional] # noqa: E501
+ model (DeclarativeWorkspaceModel): [optional] # noqa: E501
+ parent (WorkspaceIdentifier): [optional] # noqa: E501
+ permissions ([DeclarativeSingleWorkspacePermission]): [optional] # noqa: E501
+ settings ([DeclarativeSetting]): A list of workspace settings.. [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.id = id
+ self.name = name
+ 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_workspace_data_filter.py b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_data_filter.py
new file mode 100644
index 000000000..ed744b0e5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_data_filter.py
@@ -0,0 +1,309 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_workspace_data_filter_setting import DeclarativeWorkspaceDataFilterSetting
+ from gooddata_api_client.model.workspace_identifier import WorkspaceIdentifier
+ globals()['DeclarativeWorkspaceDataFilterSetting'] = DeclarativeWorkspaceDataFilterSetting
+ globals()['WorkspaceIdentifier'] = WorkspaceIdentifier
+
+
+class DeclarativeWorkspaceDataFilter(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 = {
+ ('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 {
+ 'column_name': (str,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'workspace_data_filter_settings': ([DeclarativeWorkspaceDataFilterSetting],), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'workspace': (WorkspaceIdentifier,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'column_name': 'columnName', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'workspace_data_filter_settings': 'workspaceDataFilterSettings', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'workspace': 'workspace', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, column_name, id, title, workspace_data_filter_settings, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaceDataFilter - a model defined in OpenAPI
+
+ Args:
+ column_name (str): Workspace Data Filters column name. Data are filtered using this physical column.
+ id (str): Workspace Data Filters ID. This ID is further used to refer to this instance.
+ title (str): Workspace Data Filters title.
+ workspace_data_filter_settings ([DeclarativeWorkspaceDataFilterSetting]): Filter settings specifying values of filters valid for the workspace.
+
+ 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,)
+ description (str): Workspace Data Filters description.. [optional] # noqa: E501
+ workspace (WorkspaceIdentifier): [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.column_name = column_name
+ self.id = id
+ self.title = title
+ self.workspace_data_filter_settings = workspace_data_filter_settings
+ 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, column_name, id, title, workspace_data_filter_settings, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaceDataFilter - a model defined in OpenAPI
+
+ Args:
+ column_name (str): Workspace Data Filters column name. Data are filtered using this physical column.
+ id (str): Workspace Data Filters ID. This ID is further used to refer to this instance.
+ title (str): Workspace Data Filters title.
+ workspace_data_filter_settings ([DeclarativeWorkspaceDataFilterSetting]): Filter settings specifying values of filters valid for the workspace.
+
+ 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,)
+ description (str): Workspace Data Filters description.. [optional] # noqa: E501
+ workspace (WorkspaceIdentifier): [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.column_name = column_name
+ self.id = id
+ self.title = title
+ self.workspace_data_filter_settings = workspace_data_filter_settings
+ 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_workspace_data_filter_setting.py b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_data_filter_setting.py
new file mode 100644
index 000000000..a1adba637
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_data_filter_setting.py
@@ -0,0 +1,303 @@
+"""
+ 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.workspace_identifier import WorkspaceIdentifier
+ globals()['WorkspaceIdentifier'] = WorkspaceIdentifier
+
+
+class DeclarativeWorkspaceDataFilterSetting(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 = {
+ ('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 {
+ 'filter_values': ([str],), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'workspace': (WorkspaceIdentifier,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'filter_values': 'filterValues', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'workspace': 'workspace', # noqa: E501
+ 'description': 'description', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, filter_values, id, title, workspace, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaceDataFilterSetting - a model defined in OpenAPI
+
+ Args:
+ filter_values ([str]): Only those rows are returned, where columnName from filter matches those values.
+ id (str): Workspace Data Filters ID. This ID is further used to refer to this instance.
+ title (str): Workspace Data Filters setting title.
+ workspace (WorkspaceIdentifier):
+
+ 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,)
+ description (str): Workspace Data Filters setting description.. [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.filter_values = filter_values
+ self.id = id
+ self.title = title
+ self.workspace = workspace
+ 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, filter_values, id, title, workspace, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaceDataFilterSetting - a model defined in OpenAPI
+
+ Args:
+ filter_values ([str]): Only those rows are returned, where columnName from filter matches those values.
+ id (str): Workspace Data Filters ID. This ID is further used to refer to this instance.
+ title (str): Workspace Data Filters setting title.
+ workspace (WorkspaceIdentifier):
+
+ 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,)
+ description (str): Workspace Data Filters setting description.. [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.filter_values = filter_values
+ self.id = id
+ self.title = title
+ self.workspace = workspace
+ 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_workspace_data_filters.py b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_data_filters.py
new file mode 100644
index 000000000..99afe6f28
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_data_filters.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_workspace_data_filter import DeclarativeWorkspaceDataFilter
+ globals()['DeclarativeWorkspaceDataFilter'] = DeclarativeWorkspaceDataFilter
+
+
+class DeclarativeWorkspaceDataFilters(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 {
+ 'workspace_data_filters': ([DeclarativeWorkspaceDataFilter],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'workspace_data_filters': 'workspaceDataFilters', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, workspace_data_filters, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaceDataFilters - a model defined in OpenAPI
+
+ Args:
+ workspace_data_filters ([DeclarativeWorkspaceDataFilter]):
+
+ 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.workspace_data_filters = workspace_data_filters
+ 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, workspace_data_filters, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaceDataFilters - a model defined in OpenAPI
+
+ Args:
+ workspace_data_filters ([DeclarativeWorkspaceDataFilter]):
+
+ 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.workspace_data_filters = workspace_data_filters
+ 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_workspace_hierarchy_permission.py b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_hierarchy_permission.py
new file mode 100644
index 000000000..12b7aed24
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_hierarchy_permission.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.assignee_identifier import AssigneeIdentifier
+ globals()['AssigneeIdentifier'] = AssigneeIdentifier
+
+
+class DeclarativeWorkspaceHierarchyPermission(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 = {
+ ('name',): {
+ 'MANAGE': "MANAGE",
+ 'ANALYZE': "ANALYZE",
+ 'VIEW': "VIEW",
+ },
+ }
+
+ 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 {
+ 'assignee': (AssigneeIdentifier,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'assignee': 'assignee', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, assignee, name, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaceHierarchyPermission - a model defined in OpenAPI
+
+ Args:
+ assignee (AssigneeIdentifier):
+ name (str): Permission name.
+
+ 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.assignee = assignee
+ self.name = name
+ 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, assignee, name, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaceHierarchyPermission - a model defined in OpenAPI
+
+ Args:
+ assignee (AssigneeIdentifier):
+ name (str): Permission name.
+
+ 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.assignee = assignee
+ self.name = name
+ 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_workspace_model.py b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_model.py
new file mode 100644
index 000000000..4a4fba810
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_model.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_analytics_layer import DeclarativeAnalyticsLayer
+ from gooddata_api_client.model.declarative_ldm import DeclarativeLdm
+ globals()['DeclarativeAnalyticsLayer'] = DeclarativeAnalyticsLayer
+ globals()['DeclarativeLdm'] = DeclarativeLdm
+
+
+class DeclarativeWorkspaceModel(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 {
+ 'analytics': (DeclarativeAnalyticsLayer,), # noqa: E501
+ 'ldm': (DeclarativeLdm,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'analytics': 'analytics', # noqa: E501
+ 'ldm': 'ldm', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaceModel - 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,)
+ analytics (DeclarativeAnalyticsLayer): [optional] # noqa: E501
+ ldm (DeclarativeLdm): [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
+ """DeclarativeWorkspaceModel - 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,)
+ analytics (DeclarativeAnalyticsLayer): [optional] # noqa: E501
+ ldm (DeclarativeLdm): [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/declarative_workspace_permissions.py b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_permissions.py
new file mode 100644
index 000000000..b3da80166
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_permissions.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_single_workspace_permission import DeclarativeSingleWorkspacePermission
+ from gooddata_api_client.model.declarative_workspace_hierarchy_permission import DeclarativeWorkspaceHierarchyPermission
+ globals()['DeclarativeSingleWorkspacePermission'] = DeclarativeSingleWorkspacePermission
+ globals()['DeclarativeWorkspaceHierarchyPermission'] = DeclarativeWorkspaceHierarchyPermission
+
+
+class DeclarativeWorkspacePermissions(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 {
+ 'hierarchy_permissions': ([DeclarativeWorkspaceHierarchyPermission],), # noqa: E501
+ 'permissions': ([DeclarativeSingleWorkspacePermission],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'hierarchy_permissions': 'hierarchyPermissions', # noqa: E501
+ 'permissions': 'permissions', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspacePermissions - 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,)
+ hierarchy_permissions ([DeclarativeWorkspaceHierarchyPermission]): [optional] # noqa: E501
+ permissions ([DeclarativeSingleWorkspacePermission]): [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
+ """DeclarativeWorkspacePermissions - 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,)
+ hierarchy_permissions ([DeclarativeWorkspaceHierarchyPermission]): [optional] # noqa: E501
+ permissions ([DeclarativeSingleWorkspacePermission]): [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/declarative_workspaces.py b/gooddata-api-client/gooddata_api_client/model/declarative_workspaces.py
new file mode 100644
index 000000000..2a01d2234
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/declarative_workspaces.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_workspace import DeclarativeWorkspace
+ from gooddata_api_client.model.declarative_workspace_data_filter import DeclarativeWorkspaceDataFilter
+ globals()['DeclarativeWorkspace'] = DeclarativeWorkspace
+ globals()['DeclarativeWorkspaceDataFilter'] = DeclarativeWorkspaceDataFilter
+
+
+class DeclarativeWorkspaces(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 {
+ 'workspace_data_filters': ([DeclarativeWorkspaceDataFilter],), # noqa: E501
+ 'workspaces': ([DeclarativeWorkspace],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'workspace_data_filters': 'workspaceDataFilters', # noqa: E501
+ 'workspaces': 'workspaces', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, workspace_data_filters, workspaces, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaces - a model defined in OpenAPI
+
+ Args:
+ workspace_data_filters ([DeclarativeWorkspaceDataFilter]):
+ workspaces ([DeclarativeWorkspace]):
+
+ 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.workspace_data_filters = workspace_data_filters
+ self.workspaces = workspaces
+ 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, workspace_data_filters, workspaces, *args, **kwargs): # noqa: E501
+ """DeclarativeWorkspaces - a model defined in OpenAPI
+
+ Args:
+ workspace_data_filters ([DeclarativeWorkspaceDataFilter]):
+ workspaces ([DeclarativeWorkspace]):
+
+ 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.workspace_data_filters = workspace_data_filters
+ self.workspaces = workspaces
+ 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/dependent_entities_graph.py b/gooddata-api-client/gooddata_api_client/model/dependent_entities_graph.py
new file mode 100644
index 000000000..8041b1c31
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/dependent_entities_graph.py
@@ -0,0 +1,288 @@
+"""
+ 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.dependent_entities_node import DependentEntitiesNode
+ from gooddata_api_client.model.entity_identifier import EntityIdentifier
+ globals()['DependentEntitiesNode'] = DependentEntitiesNode
+ globals()['EntityIdentifier'] = EntityIdentifier
+
+
+class DependentEntitiesGraph(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 = {
+ ('edges',): {
+ },
+ ('nodes',): {
+ },
+ }
+
+ @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 {
+ 'edges': ([[EntityIdentifier]],), # noqa: E501
+ 'nodes': ([DependentEntitiesNode],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'edges': 'edges', # noqa: E501
+ 'nodes': 'nodes', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, edges, nodes, *args, **kwargs): # noqa: E501
+ """DependentEntitiesGraph - a model defined in OpenAPI
+
+ Args:
+ edges ([[EntityIdentifier]]):
+ nodes ([DependentEntitiesNode]):
+
+ 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.edges = edges
+ self.nodes = nodes
+ 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, edges, nodes, *args, **kwargs): # noqa: E501
+ """DependentEntitiesGraph - a model defined in OpenAPI
+
+ Args:
+ edges ([[EntityIdentifier]]):
+ nodes ([DependentEntitiesNode]):
+
+ 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.edges = edges
+ self.nodes = nodes
+ 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/dependent_entities_node.py b/gooddata-api-client/gooddata_api_client/model/dependent_entities_node.py
new file mode 100644
index 000000000..9a38e480f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/dependent_entities_node.py
@@ -0,0 +1,280 @@
+"""
+ 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 DependentEntitiesNode(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 {
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'title': 'title', # 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
+ """DependentEntitiesNode - 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,)
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.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
+ """DependentEntitiesNode - 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,)
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.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/dependent_entities_request.py b/gooddata-api-client/gooddata_api_client/model/dependent_entities_request.py
new file mode 100644
index 000000000..38c1583db
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/dependent_entities_request.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.entity_identifier import EntityIdentifier
+ globals()['EntityIdentifier'] = EntityIdentifier
+
+
+class DependentEntitiesRequest(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 {
+ 'identifiers': ([EntityIdentifier],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'identifiers': 'identifiers', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, identifiers, *args, **kwargs): # noqa: E501
+ """DependentEntitiesRequest - a model defined in OpenAPI
+
+ Args:
+ identifiers ([EntityIdentifier]):
+
+ 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.identifiers = identifiers
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ 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, identifiers, *args, **kwargs): # noqa: E501
+ """DependentEntitiesRequest - a model defined in OpenAPI
+
+ Args:
+ identifiers ([EntityIdentifier]):
+
+ 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.identifiers = identifiers
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ 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/dependent_entities_response.py b/gooddata-api-client/gooddata_api_client/model/dependent_entities_response.py
new file mode 100644
index 000000000..66ab425bd
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/dependent_entities_response.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.dependent_entities_graph import DependentEntitiesGraph
+ globals()['DependentEntitiesGraph'] = DependentEntitiesGraph
+
+
+class DependentEntitiesResponse(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 {
+ 'graph': (DependentEntitiesGraph,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'graph': 'graph', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, graph, *args, **kwargs): # noqa: E501
+ """DependentEntitiesResponse - a model defined in OpenAPI
+
+ Args:
+ graph (DependentEntitiesGraph):
+
+ 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.graph = graph
+ 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, graph, *args, **kwargs): # noqa: E501
+ """DependentEntitiesResponse - a model defined in OpenAPI
+
+ Args:
+ graph (DependentEntitiesGraph):
+
+ 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.graph = graph
+ 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/dimension.py b/gooddata-api-client/gooddata_api_client/model/dimension.py
new file mode 100644
index 000000000..e5d7dde9a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/dimension.py
@@ -0,0 +1,289 @@
+"""
+ 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.sort_key import SortKey
+ globals()['SortKey'] = SortKey
+
+
+class Dimension(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 = {
+ ('local_identifier',): {
+ 'regex': {
+ 'pattern': r'^[.a-zA-Z0-9_-]+$', # 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 {
+ 'item_identifiers': ([str],), # noqa: E501
+ 'local_identifier': (str,), # noqa: E501
+ 'sorting': ([SortKey],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'item_identifiers': 'itemIdentifiers', # noqa: E501
+ 'local_identifier': 'localIdentifier', # noqa: E501
+ 'sorting': 'sorting', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, item_identifiers, *args, **kwargs): # noqa: E501
+ """Dimension - a model defined in OpenAPI
+
+ Args:
+ item_identifiers ([str]): List of items in current dimension. Can reference 'localIdentifier' from 'AttributeItem', or special pseudo attribute \"measureGroup\" representing list of metrics.
+
+ 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,)
+ local_identifier (str): Dimension identification within requests. Other entities can reference this dimension by this value.. [optional] # noqa: E501
+ sorting ([SortKey]): List of sorting rules. From most relevant to least relevant (less relevant rule is applied, when more relevant rule compares items as equal).. [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.item_identifiers = item_identifiers
+ 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, item_identifiers, *args, **kwargs): # noqa: E501
+ """Dimension - a model defined in OpenAPI
+
+ Args:
+ item_identifiers ([str]): List of items in current dimension. Can reference 'localIdentifier' from 'AttributeItem', or special pseudo attribute \"measureGroup\" representing list of metrics.
+
+ 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,)
+ local_identifier (str): Dimension identification within requests. Other entities can reference this dimension by this value.. [optional] # noqa: E501
+ sorting ([SortKey]): List of sorting rules. From most relevant to least relevant (less relevant rule is applied, when more relevant rule compares items as equal).. [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.item_identifiers = item_identifiers
+ 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/dimension_header.py b/gooddata-api-client/gooddata_api_client/model/dimension_header.py
new file mode 100644
index 000000000..03ff40577
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/dimension_header.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.header_group import HeaderGroup
+ globals()['HeaderGroup'] = HeaderGroup
+
+
+class DimensionHeader(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 {
+ 'header_groups': ([HeaderGroup],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'header_groups': 'headerGroups', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, header_groups, *args, **kwargs): # noqa: E501
+ """DimensionHeader - a model defined in OpenAPI
+
+ Args:
+ header_groups ([HeaderGroup]): An array containing header groups.
+
+ 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.header_groups = header_groups
+ 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, header_groups, *args, **kwargs): # noqa: E501
+ """DimensionHeader - a model defined in OpenAPI
+
+ Args:
+ header_groups ([HeaderGroup]): An array containing header groups.
+
+ 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.header_groups = header_groups
+ 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/element.py b/gooddata-api-client/gooddata_api_client/model/element.py
new file mode 100644
index 000000000..bd82270a3
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/element.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 Element(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 {
+ 'primary_title': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'primary_title': 'primaryTitle', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, primary_title, title, *args, **kwargs): # noqa: E501
+ """Element - a model defined in OpenAPI
+
+ Args:
+ primary_title (str): Title of primary label of attribute owning requested label or null if the primary label is excluded
+ title (str): Title of requested label.
+
+ 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.primary_title = primary_title
+ self.title = title
+ 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, primary_title, title, *args, **kwargs): # noqa: E501
+ """Element - a model defined in OpenAPI
+
+ Args:
+ primary_title (str): Title of primary label of attribute owning requested label or null if the primary label is excluded
+ title (str): Title of requested label.
+
+ 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.primary_title = primary_title
+ self.title = title
+ 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/elements_request.py b/gooddata-api-client/gooddata_api_client/model/elements_request.py
new file mode 100644
index 000000000..3e02bfb5b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/elements_request.py
@@ -0,0 +1,308 @@
+"""
+ 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.filter_by import FilterBy
+ globals()['FilterBy'] = FilterBy
+
+
+class ElementsRequest(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 = {
+ ('sort_order',): {
+ 'ASC': "ASC",
+ 'DESC': "DESC",
+ },
+ }
+
+ 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 {
+ 'label': (str,), # noqa: E501
+ 'complement_filter': (bool,), # noqa: E501
+ 'data_sampling_percentage': (float,), # noqa: E501
+ 'exact_filter': ([str],), # noqa: E501
+ 'exclude_primary_label': (bool,), # noqa: E501
+ 'filter_by': (FilterBy,), # noqa: E501
+ 'pattern_filter': (str,), # noqa: E501
+ 'sort_order': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'label': 'label', # noqa: E501
+ 'complement_filter': 'complementFilter', # noqa: E501
+ 'data_sampling_percentage': 'dataSamplingPercentage', # noqa: E501
+ 'exact_filter': 'exactFilter', # noqa: E501
+ 'exclude_primary_label': 'excludePrimaryLabel', # noqa: E501
+ 'filter_by': 'filterBy', # noqa: E501
+ 'pattern_filter': 'patternFilter', # noqa: E501
+ 'sort_order': 'sortOrder', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, label, *args, **kwargs): # noqa: E501
+ """ElementsRequest - a model defined in OpenAPI
+
+ Args:
+ label (str): Requested label.
+
+ 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,)
+ complement_filter (bool): Inverse filters: * ```false``` - return items matching ```patternFilter``` and ```exactFilter``` * ```true``` - return items not matching ```patternFilter``` and ```exactFilter```. [optional] if omitted the server will use the default value of False # noqa: E501
+ data_sampling_percentage (float): Specifies percentage of source table data scanned during the computation. This field is deprecated and is no longer used during the elements computation.. [optional] if omitted the server will use the default value of 100 # noqa: E501
+ exact_filter ([str]): Return only items, whose ```label``` title exactly matches one of ```filter```.. [optional] # noqa: E501
+ exclude_primary_label (bool): Excludes items from the result that differ only by primary label * ```false``` - return items with distinct primary label * ```true``` - return items with distinct requested label. [optional] if omitted the server will use the default value of False # noqa: E501
+ filter_by (FilterBy): [optional] # noqa: E501
+ pattern_filter (str): Return only items, whose ```label``` title case insensitively contains ```filter``` as substring.. [optional] # noqa: E501
+ sort_order (str): Sort order of returned items. Items are sorted by ```label``` title. If no sort order is specified then attribute's ```sortDirection``` is used, which is ASC by default. [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.label = label
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, label, *args, **kwargs): # noqa: E501
+ """ElementsRequest - a model defined in OpenAPI
+
+ Args:
+ label (str): Requested label.
+
+ 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,)
+ complement_filter (bool): Inverse filters: * ```false``` - return items matching ```patternFilter``` and ```exactFilter``` * ```true``` - return items not matching ```patternFilter``` and ```exactFilter```. [optional] if omitted the server will use the default value of False # noqa: E501
+ data_sampling_percentage (float): Specifies percentage of source table data scanned during the computation. This field is deprecated and is no longer used during the elements computation.. [optional] if omitted the server will use the default value of 100 # noqa: E501
+ exact_filter ([str]): Return only items, whose ```label``` title exactly matches one of ```filter```.. [optional] # noqa: E501
+ exclude_primary_label (bool): Excludes items from the result that differ only by primary label * ```false``` - return items with distinct primary label * ```true``` - return items with distinct requested label. [optional] if omitted the server will use the default value of False # noqa: E501
+ filter_by (FilterBy): [optional] # noqa: E501
+ pattern_filter (str): Return only items, whose ```label``` title case insensitively contains ```filter``` as substring.. [optional] # noqa: E501
+ sort_order (str): Sort order of returned items. Items are sorted by ```label``` title. If no sort order is specified then attribute's ```sortDirection``` is used, which is ASC by default. [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.label = label
+ 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/elements_response.py b/gooddata-api-client/gooddata_api_client/model/elements_response.py
new file mode 100644
index 000000000..cfc18996f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/elements_response.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.element import Element
+ from gooddata_api_client.model.paging import Paging
+ from gooddata_api_client.model.rest_api_identifier import RestApiIdentifier
+ globals()['Element'] = Element
+ globals()['Paging'] = Paging
+ globals()['RestApiIdentifier'] = RestApiIdentifier
+
+
+class ElementsResponse(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 {
+ 'elements': ([Element],), # noqa: E501
+ 'paging': (Paging,), # noqa: E501
+ 'primary_label': (RestApiIdentifier,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'elements': 'elements', # noqa: E501
+ 'paging': 'paging', # noqa: E501
+ 'primary_label': 'primaryLabel', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, elements, paging, primary_label, *args, **kwargs): # noqa: E501
+ """ElementsResponse - a model defined in OpenAPI
+
+ Args:
+ elements ([Element]): List of returned elements.
+ paging (Paging):
+ primary_label (RestApiIdentifier):
+
+ 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.elements = elements
+ self.paging = paging
+ self.primary_label = primary_label
+ 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, elements, paging, primary_label, *args, **kwargs): # noqa: E501
+ """ElementsResponse - a model defined in OpenAPI
+
+ Args:
+ elements ([Element]): List of returned elements.
+ paging (Paging):
+ primary_label (RestApiIdentifier):
+
+ 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.elements = elements
+ self.paging = paging
+ self.primary_label = primary_label
+ 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/entitlements_request.py b/gooddata-api-client/gooddata_api_client/model/entitlements_request.py
new file mode 100644
index 000000000..f8acfbf53
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/entitlements_request.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class EntitlementsRequest(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 = {
+ ('entitlements_name',): {
+ 'CONTRACT': "Contract",
+ 'CUSTOMTHEMING': "CustomTheming",
+ 'MANAGEDOIDC': "ManagedOIDC",
+ 'UILOCALIZATION': "UiLocalization",
+ 'TIER': "Tier",
+ 'USERCOUNT': "UserCount",
+ 'UNLIMITEDUSERS': "UnlimitedUsers",
+ 'UNLIMITEDWORKSPACES': "UnlimitedWorkspaces",
+ 'WHITELABELING': "WhiteLabeling",
+ 'WORKSPACECOUNT': "WorkspaceCount",
+ },
+ }
+
+ validations = {
+ ('entitlements_name',): {
+ },
+ }
+
+ @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 {
+ 'entitlements_name': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'entitlements_name': 'entitlementsName', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, entitlements_name, *args, **kwargs): # noqa: E501
+ """EntitlementsRequest - a model defined in OpenAPI
+
+ Args:
+ entitlements_name ([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.entitlements_name = entitlements_name
+ 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, entitlements_name, *args, **kwargs): # noqa: E501
+ """EntitlementsRequest - a model defined in OpenAPI
+
+ Args:
+ entitlements_name ([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.entitlements_name = entitlements_name
+ 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/entity_identifier.py b/gooddata-api-client/gooddata_api_client/model/entity_identifier.py
new file mode 100644
index 000000000..e9ff8abbf
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/entity_identifier.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 EntityIdentifier(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 {
+ '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
+ """EntityIdentifier - 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
+ """EntityIdentifier - 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/execution_links.py b/gooddata-api-client/gooddata_api_client/model/execution_links.py
new file mode 100644
index 000000000..06861d461
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/execution_links.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 ExecutionLinks(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 {
+ 'execution_result': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'execution_result': 'executionResult', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, execution_result, *args, **kwargs): # noqa: E501
+ """ExecutionLinks - a model defined in OpenAPI
+
+ Args:
+ execution_result (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.execution_result = execution_result
+ 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, execution_result, *args, **kwargs): # noqa: E501
+ """ExecutionLinks - a model defined in OpenAPI
+
+ Args:
+ execution_result (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.execution_result = execution_result
+ 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/execution_response.py b/gooddata-api-client/gooddata_api_client/model/execution_response.py
new file mode 100644
index 000000000..7f621db7b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/execution_response.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.execution_links import ExecutionLinks
+ from gooddata_api_client.model.result_dimension import ResultDimension
+ globals()['ExecutionLinks'] = ExecutionLinks
+ globals()['ResultDimension'] = ResultDimension
+
+
+class ExecutionResponse(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 {
+ 'dimensions': ([ResultDimension],), # noqa: E501
+ 'links': (ExecutionLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'dimensions': 'dimensions', # noqa: E501
+ 'links': 'links', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, dimensions, links, *args, **kwargs): # noqa: E501
+ """ExecutionResponse - a model defined in OpenAPI
+
+ Args:
+ dimensions ([ResultDimension]):
+ links (ExecutionLinks):
+
+ 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.dimensions = dimensions
+ self.links = links
+ 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, dimensions, links, *args, **kwargs): # noqa: E501
+ """ExecutionResponse - a model defined in OpenAPI
+
+ Args:
+ dimensions ([ResultDimension]):
+ links (ExecutionLinks):
+
+ 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.dimensions = dimensions
+ self.links = links
+ 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/execution_result.py b/gooddata-api-client/gooddata_api_client/model/execution_result.py
new file mode 100644
index 000000000..545592425
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/execution_result.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.dimension_header import DimensionHeader
+ from gooddata_api_client.model.execution_result_grand_total import ExecutionResultGrandTotal
+ from gooddata_api_client.model.execution_result_paging import ExecutionResultPaging
+ globals()['DimensionHeader'] = DimensionHeader
+ globals()['ExecutionResultGrandTotal'] = ExecutionResultGrandTotal
+ globals()['ExecutionResultPaging'] = ExecutionResultPaging
+
+
+class ExecutionResult(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': ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}],), # noqa: E501
+ 'dimension_headers': ([DimensionHeader],), # noqa: E501
+ 'grand_totals': ([ExecutionResultGrandTotal],), # noqa: E501
+ 'paging': (ExecutionResultPaging,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'dimension_headers': 'dimensionHeaders', # noqa: E501
+ 'grand_totals': 'grandTotals', # noqa: E501
+ 'paging': 'paging', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, data, dimension_headers, grand_totals, paging, *args, **kwargs): # noqa: E501
+ """ExecutionResult - a model defined in OpenAPI
+
+ Args:
+ data ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): A multi-dimensional array of computed results. The most common one being a 2-dimensional array. The arrays can be composed of Double or null values.
+ dimension_headers ([DimensionHeader]): An array containing dimension headers. The size of the array corresponds to dimension size. Their order corresponds to the dimension order in the execution result spec.
+ grand_totals ([ExecutionResultGrandTotal]):
+ paging (ExecutionResultPaging):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ self.dimension_headers = dimension_headers
+ self.grand_totals = grand_totals
+ self.paging = paging
+ 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, dimension_headers, grand_totals, paging, *args, **kwargs): # noqa: E501
+ """ExecutionResult - a model defined in OpenAPI
+
+ Args:
+ data ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): A multi-dimensional array of computed results. The most common one being a 2-dimensional array. The arrays can be composed of Double or null values.
+ dimension_headers ([DimensionHeader]): An array containing dimension headers. The size of the array corresponds to dimension size. Their order corresponds to the dimension order in the execution result spec.
+ grand_totals ([ExecutionResultGrandTotal]):
+ paging (ExecutionResultPaging):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ self.dimension_headers = dimension_headers
+ self.grand_totals = grand_totals
+ self.paging = paging
+ 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/execution_result_grand_total.py b/gooddata-api-client/gooddata_api_client/model/execution_result_grand_total.py
new file mode 100644
index 000000000..ce34b8774
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/execution_result_grand_total.py
@@ -0,0 +1,288 @@
+"""
+ 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.dimension_header import DimensionHeader
+ globals()['DimensionHeader'] = DimensionHeader
+
+
+class ExecutionResultGrandTotal(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': ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}],), # noqa: E501
+ 'dimension_headers': ([DimensionHeader],), # noqa: E501
+ 'total_dimensions': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'dimension_headers': 'dimensionHeaders', # noqa: E501
+ 'total_dimensions': 'totalDimensions', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, data, dimension_headers, total_dimensions, *args, **kwargs): # noqa: E501
+ """ExecutionResultGrandTotal - a model defined in OpenAPI
+
+ Args:
+ data ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): A multi-dimensional array of computed results. The most common one being a 2-dimensional array. The arrays can be composed of Double or null values.
+ dimension_headers ([DimensionHeader]): Contains headers for a subset of `totalDimensions` in which the totals are grand totals.
+ total_dimensions ([str]): Dimensions of the grand totals.
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ self.dimension_headers = dimension_headers
+ self.total_dimensions = total_dimensions
+ 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, dimension_headers, total_dimensions, *args, **kwargs): # noqa: E501
+ """ExecutionResultGrandTotal - a model defined in OpenAPI
+
+ Args:
+ data ([{str: (bool, date, datetime, dict, float, int, list, str, none_type)}]): A multi-dimensional array of computed results. The most common one being a 2-dimensional array. The arrays can be composed of Double or null values.
+ dimension_headers ([DimensionHeader]): Contains headers for a subset of `totalDimensions` in which the totals are grand totals.
+ total_dimensions ([str]): Dimensions of the grand totals.
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data = data
+ self.dimension_headers = dimension_headers
+ self.total_dimensions = total_dimensions
+ 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/execution_result_header.py b/gooddata-api-client/gooddata_api_client/model/execution_result_header.py
new file mode 100644
index 000000000..373cd6172
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/execution_result_header.py
@@ -0,0 +1,340 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.attribute_execution_result_header import AttributeExecutionResultHeader
+ from gooddata_api_client.model.attribute_result_header import AttributeResultHeader
+ from gooddata_api_client.model.measure_execution_result_header import MeasureExecutionResultHeader
+ from gooddata_api_client.model.measure_result_header import MeasureResultHeader
+ from gooddata_api_client.model.total_execution_result_header import TotalExecutionResultHeader
+ from gooddata_api_client.model.total_result_header import TotalResultHeader
+ globals()['AttributeExecutionResultHeader'] = AttributeExecutionResultHeader
+ globals()['AttributeResultHeader'] = AttributeResultHeader
+ globals()['MeasureExecutionResultHeader'] = MeasureExecutionResultHeader
+ globals()['MeasureResultHeader'] = MeasureResultHeader
+ globals()['TotalExecutionResultHeader'] = TotalExecutionResultHeader
+ globals()['TotalResultHeader'] = TotalResultHeader
+
+
+class ExecutionResultHeader(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'attribute_header': (AttributeResultHeader,), # noqa: E501
+ 'measure_header': (MeasureResultHeader,), # noqa: E501
+ 'total_header': (TotalResultHeader,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attribute_header': 'attributeHeader', # noqa: E501
+ 'measure_header': 'measureHeader', # noqa: E501
+ 'total_header': 'totalHeader', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """ExecutionResultHeader - 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,)
+ attribute_header (AttributeResultHeader): [optional] # noqa: E501
+ measure_header (MeasureResultHeader): [optional] # noqa: E501
+ total_header (TotalResultHeader): [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
+ """ExecutionResultHeader - 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,)
+ attribute_header (AttributeResultHeader): [optional] # noqa: E501
+ measure_header (MeasureResultHeader): [optional] # noqa: E501
+ total_header (TotalResultHeader): [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': [
+ AttributeExecutionResultHeader,
+ MeasureExecutionResultHeader,
+ TotalExecutionResultHeader,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/execution_result_paging.py b/gooddata-api-client/gooddata_api_client/model/execution_result_paging.py
new file mode 100644
index 000000000..37f278bdc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/execution_result_paging.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
+
+
+
+class ExecutionResultPaging(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 {
+ 'count': ([int],), # noqa: E501
+ 'offset': ([int],), # noqa: E501
+ 'total': ([int],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'count': 'count', # noqa: E501
+ 'offset': 'offset', # noqa: E501
+ 'total': 'total', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, count, offset, total, *args, **kwargs): # noqa: E501
+ """ExecutionResultPaging - a model defined in OpenAPI
+
+ Args:
+ count ([int]): A count of the returned results in every dimension.
+ offset ([int]): The offset of the results returned in every dimension.
+ total ([int]): A total count of the results in every dimension.
+
+ 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.count = count
+ self.offset = offset
+ self.total = total
+ 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, count, offset, total, *args, **kwargs): # noqa: E501
+ """ExecutionResultPaging - a model defined in OpenAPI
+
+ Args:
+ count ([int]): A count of the returned results in every dimension.
+ offset ([int]): The offset of the results returned in every dimension.
+ total ([int]): A total count of the results in every dimension.
+
+ 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.count = count
+ self.offset = offset
+ self.total = total
+ 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/execution_settings.py b/gooddata-api-client/gooddata_api_client/model/execution_settings.py
new file mode 100644
index 000000000..1e5556837
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/execution_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 ExecutionSettings(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_sampling_percentage',): {
+ 'exclusive_maximum''inclusive_maximum': 100,
+ 'exclusive_minimum''inclusive_minimum': 0,
+ },
+ }
+
+ @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 {
+ 'data_sampling_percentage': (float,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data_sampling_percentage': 'dataSamplingPercentage', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """ExecutionSettings - 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,)
+ data_sampling_percentage (float): 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.. [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
+ """ExecutionSettings - 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,)
+ data_sampling_percentage (float): 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.. [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/filter_by.py b/gooddata-api-client/gooddata_api_client/model/filter_by.py
new file mode 100644
index 000000000..7a2af2090
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/filter_by.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 FilterBy(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 = {
+ ('label_type',): {
+ 'PRIMARY': "PRIMARY",
+ 'REQUESTED': "REQUESTED",
+ },
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ return {
+ 'label_type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'label_type': 'labelType', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """FilterBy - a model defined in OpenAPI
+
+ Args:
+
+ Keyword Args:
+ label_type (str): Specifies which label is used for filtering - primary or requested.. defaults to "REQUESTED", must be one of ["PRIMARY", "REQUESTED", ] # 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,)
+ """
+
+ label_type = kwargs.get('label_type', "REQUESTED")
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.label_type = label_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, *args, **kwargs): # noqa: E501
+ """FilterBy - a model defined in OpenAPI
+
+ Args:
+
+ Keyword Args:
+ label_type (str): Specifies which label is used for filtering - primary or requested.. defaults to "REQUESTED", must be one of ["PRIMARY", "REQUESTED", ] # 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,)
+ """
+
+ label_type = kwargs.get('label_type', "REQUESTED")
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.label_type = label_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/filter_definition.py b/gooddata-api-client/gooddata_api_client/model/filter_definition.py
new file mode 100644
index 000000000..94fce52c7
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/filter_definition.py
@@ -0,0 +1,385 @@
+"""
+ 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 import AbsoluteDateFilter
+ from gooddata_api_client.model.absolute_date_filter_absolute_date_filter import AbsoluteDateFilterAbsoluteDateFilter
+ from gooddata_api_client.model.comparison_measure_value_filter import ComparisonMeasureValueFilter
+ from gooddata_api_client.model.comparison_measure_value_filter_comparison_measure_value_filter import ComparisonMeasureValueFilterComparisonMeasureValueFilter
+ 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 import NegativeAttributeFilter
+ from gooddata_api_client.model.negative_attribute_filter_negative_attribute_filter import NegativeAttributeFilterNegativeAttributeFilter
+ from gooddata_api_client.model.positive_attribute_filter import PositiveAttributeFilter
+ from gooddata_api_client.model.positive_attribute_filter_positive_attribute_filter import PositiveAttributeFilterPositiveAttributeFilter
+ from gooddata_api_client.model.range_measure_value_filter import RangeMeasureValueFilter
+ from gooddata_api_client.model.range_measure_value_filter_range_measure_value_filter import RangeMeasureValueFilterRangeMeasureValueFilter
+ from gooddata_api_client.model.ranking_filter import RankingFilter
+ from gooddata_api_client.model.ranking_filter_ranking_filter import RankingFilterRankingFilter
+ from gooddata_api_client.model.relative_date_filter import RelativeDateFilter
+ from gooddata_api_client.model.relative_date_filter_relative_date_filter import RelativeDateFilterRelativeDateFilter
+ globals()['AbsoluteDateFilter'] = AbsoluteDateFilter
+ globals()['AbsoluteDateFilterAbsoluteDateFilter'] = AbsoluteDateFilterAbsoluteDateFilter
+ globals()['ComparisonMeasureValueFilter'] = ComparisonMeasureValueFilter
+ globals()['ComparisonMeasureValueFilterComparisonMeasureValueFilter'] = ComparisonMeasureValueFilterComparisonMeasureValueFilter
+ globals()['InlineFilterDefinition'] = InlineFilterDefinition
+ globals()['InlineFilterDefinitionInline'] = InlineFilterDefinitionInline
+ globals()['NegativeAttributeFilter'] = NegativeAttributeFilter
+ globals()['NegativeAttributeFilterNegativeAttributeFilter'] = NegativeAttributeFilterNegativeAttributeFilter
+ globals()['PositiveAttributeFilter'] = PositiveAttributeFilter
+ globals()['PositiveAttributeFilterPositiveAttributeFilter'] = PositiveAttributeFilterPositiveAttributeFilter
+ globals()['RangeMeasureValueFilter'] = RangeMeasureValueFilter
+ globals()['RangeMeasureValueFilterRangeMeasureValueFilter'] = RangeMeasureValueFilterRangeMeasureValueFilter
+ globals()['RankingFilter'] = RankingFilter
+ globals()['RankingFilterRankingFilter'] = RankingFilterRankingFilter
+ globals()['RelativeDateFilter'] = RelativeDateFilter
+ globals()['RelativeDateFilterRelativeDateFilter'] = RelativeDateFilterRelativeDateFilter
+
+
+class FilterDefinition(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'inline': (InlineFilterDefinitionInline,), # noqa: E501
+ 'ranking_filter': (RankingFilterRankingFilter,), # noqa: E501
+ 'comparison_measure_value_filter': (ComparisonMeasureValueFilterComparisonMeasureValueFilter,), # noqa: E501
+ 'range_measure_value_filter': (RangeMeasureValueFilterRangeMeasureValueFilter,), # 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
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'inline': 'inline', # noqa: E501
+ 'ranking_filter': 'rankingFilter', # noqa: E501
+ 'comparison_measure_value_filter': 'comparisonMeasureValueFilter', # noqa: E501
+ 'range_measure_value_filter': 'rangeMeasureValueFilter', # 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
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """FilterDefinition - 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,)
+ inline (InlineFilterDefinitionInline): [optional] # noqa: E501
+ ranking_filter (RankingFilterRankingFilter): [optional] # noqa: E501
+ comparison_measure_value_filter (ComparisonMeasureValueFilterComparisonMeasureValueFilter): [optional] # noqa: E501
+ range_measure_value_filter (RangeMeasureValueFilterRangeMeasureValueFilter): [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
+ """
+
+ _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
+ """FilterDefinition - 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,)
+ inline (InlineFilterDefinitionInline): [optional] # noqa: E501
+ ranking_filter (RankingFilterRankingFilter): [optional] # noqa: E501
+ comparison_measure_value_filter (ComparisonMeasureValueFilterComparisonMeasureValueFilter): [optional] # noqa: E501
+ range_measure_value_filter (RangeMeasureValueFilterRangeMeasureValueFilter): [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
+ """
+
+ _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': [
+ AbsoluteDateFilter,
+ ComparisonMeasureValueFilter,
+ InlineFilterDefinition,
+ NegativeAttributeFilter,
+ PositiveAttributeFilter,
+ RangeMeasureValueFilter,
+ RankingFilter,
+ RelativeDateFilter,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/filter_definition_for_simple_measure.py b/gooddata-api-client/gooddata_api_client/model/filter_definition_for_simple_measure.py
new file mode 100644
index 000000000..14bd2464a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/filter_definition_for_simple_measure.py
@@ -0,0 +1,343 @@
+"""
+ 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.attribute_filter import AttributeFilter
+ from gooddata_api_client.model.date_filter import DateFilter
+ 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.relative_date_filter_relative_date_filter import RelativeDateFilterRelativeDateFilter
+ globals()['AbsoluteDateFilterAbsoluteDateFilter'] = AbsoluteDateFilterAbsoluteDateFilter
+ globals()['AttributeFilter'] = AttributeFilter
+ globals()['DateFilter'] = DateFilter
+ globals()['NegativeAttributeFilterNegativeAttributeFilter'] = NegativeAttributeFilterNegativeAttributeFilter
+ globals()['PositiveAttributeFilterPositiveAttributeFilter'] = PositiveAttributeFilterPositiveAttributeFilter
+ globals()['RelativeDateFilterRelativeDateFilter'] = RelativeDateFilterRelativeDateFilter
+
+
+class FilterDefinitionForSimpleMeasure(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'absolute_date_filter': (AbsoluteDateFilterAbsoluteDateFilter,), # noqa: E501
+ 'relative_date_filter': (RelativeDateFilterRelativeDateFilter,), # noqa: E501
+ 'negative_attribute_filter': (NegativeAttributeFilterNegativeAttributeFilter,), # noqa: E501
+ 'positive_attribute_filter': (PositiveAttributeFilterPositiveAttributeFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'absolute_date_filter': 'absoluteDateFilter', # noqa: E501
+ 'relative_date_filter': 'relativeDateFilter', # noqa: E501
+ 'negative_attribute_filter': 'negativeAttributeFilter', # noqa: E501
+ 'positive_attribute_filter': 'positiveAttributeFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """FilterDefinitionForSimpleMeasure - 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,)
+ 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
+ """
+
+ _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
+ """FilterDefinitionForSimpleMeasure - 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,)
+ 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
+ """
+
+ _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': [
+ AttributeFilter,
+ DateFilter,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/generate_ldm_request.py b/gooddata-api-client/gooddata_api_client/model/generate_ldm_request.py
new file mode 100644
index 000000000..d85b97360
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/generate_ldm_request.py
@@ -0,0 +1,318 @@
+"""
+ 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 GenerateLdmRequest(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 {
+ 'separator': (str,), # noqa: E501
+ 'date_granularities': (str,), # noqa: E501
+ 'denorm_prefix': (str,), # noqa: E501
+ 'fact_prefix': (str,), # noqa: E501
+ 'generate_long_ids': (bool,), # noqa: E501
+ 'grain_prefix': (str,), # noqa: E501
+ 'grain_reference_prefix': (str,), # noqa: E501
+ 'primary_label_prefix': (str,), # noqa: E501
+ 'reference_prefix': (str,), # noqa: E501
+ 'secondary_label_prefix': (str,), # noqa: E501
+ 'table_prefix': (str,), # noqa: E501
+ 'view_prefix': (str,), # noqa: E501
+ 'wdf_prefix': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'separator': 'separator', # noqa: E501
+ 'date_granularities': 'dateGranularities', # noqa: E501
+ 'denorm_prefix': 'denormPrefix', # noqa: E501
+ 'fact_prefix': 'factPrefix', # noqa: E501
+ 'generate_long_ids': 'generateLongIds', # noqa: E501
+ 'grain_prefix': 'grainPrefix', # noqa: E501
+ 'grain_reference_prefix': 'grainReferencePrefix', # noqa: E501
+ 'primary_label_prefix': 'primaryLabelPrefix', # noqa: E501
+ 'reference_prefix': 'referencePrefix', # noqa: E501
+ 'secondary_label_prefix': 'secondaryLabelPrefix', # noqa: E501
+ 'table_prefix': 'tablePrefix', # noqa: E501
+ 'view_prefix': 'viewPrefix', # noqa: E501
+ 'wdf_prefix': 'wdfPrefix', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, separator, *args, **kwargs): # noqa: E501
+ """GenerateLdmRequest - a model defined in OpenAPI
+
+ Args:
+ separator (str): A separator between prefixes and the names. Default is \"__\".
+
+ 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,)
+ date_granularities (str): Option to control date granularities for date datasets. Empty value enables common date granularities (DAY, WEEK, MONTH, QUARTER, YEAR). Default value is `all` which enables all available date granularities, including time granularities (like hours, minutes).. [optional] # noqa: E501
+ denorm_prefix (str): Columns starting with this prefix will be considered as denormalization references. The prefix is then followed by the value of `separator` parameter. Given the denormalization reference prefix is `dr` and separator is `__`, the columns with name like `dr__customer_name` will be considered as denormalization references.. [optional] # noqa: E501
+ fact_prefix (str): Columns starting with this prefix will be considered as facts. The prefix is then followed by the value of `separator` parameter. Given the fact prefix is `f` and separator is `__`, the columns with name like `f__sold` will be considered as facts.. [optional] # noqa: E501
+ generate_long_ids (bool): A flag dictating how the attribute, fact and label ids are generated. By default their ids are derived only from the column name, unless there would be a conflict (e.g. category coming from two different tables). In that case a long id format of `
.` is used. If the flag is set to true, then all ids will be generated in the long form.. [optional] # noqa: E501
+ grain_prefix (str): Columns starting with this prefix will be considered as grains. The prefix is then followed by the value of `separator` parameter. Given the grain prefix is `g` and separator is `__`, the columns with name like `g__name` will be considered as grains.. [optional] # noqa: E501
+ grain_reference_prefix (str): Columns starting with this prefix will be considered as grain references. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `gr` and separator is `__`, the columns with name like `gr__customer_name` will be considered as grain references.. [optional] # noqa: E501
+ primary_label_prefix (str): Columns starting with this prefix will be considered as primary labels. The prefix is then followed by the value of `separator` parameter. Given the primary label prefix is `pl` and separator is `__`, the columns with name like `pl__country_id` will be considered as primary labels.. [optional] # noqa: E501
+ reference_prefix (str): Columns starting with this prefix will be considered as references. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `r` and separator is `__`, the columns with name like `r__customer_name` will be considered as references.. [optional] # noqa: E501
+ secondary_label_prefix (str): Columns starting with this prefix will be considered as secondary labels. The prefix is then followed by the value of `separator` parameter. Given the secondary label prefix is `sl` and separator is `__`, the columns with name like `sl__country_id_country_name` will be considered as secondary labels.. [optional] # noqa: E501
+ table_prefix (str): Tables starting with this prefix will be included. The prefix is then followed by the value of `separator` parameter. Given the table prefix is `out_table` and separator is `__`, the table with name like `out_table__customers` will be scanned.. [optional] # noqa: E501
+ view_prefix (str): Views starting with this prefix will be included. The prefix is then followed by the value of `separator` parameter. Given the view prefix is `out_view` and separator is `__`, the table with name like `out_view__us_customers` will be scanned.. [optional] # noqa: E501
+ wdf_prefix (str): Column serving as workspace data filter. No labels are auto generated for such columns.. [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.separator = separator
+ 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, separator, *args, **kwargs): # noqa: E501
+ """GenerateLdmRequest - a model defined in OpenAPI
+
+ Args:
+ separator (str): A separator between prefixes and the names. Default is \"__\".
+
+ 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,)
+ date_granularities (str): Option to control date granularities for date datasets. Empty value enables common date granularities (DAY, WEEK, MONTH, QUARTER, YEAR). Default value is `all` which enables all available date granularities, including time granularities (like hours, minutes).. [optional] # noqa: E501
+ denorm_prefix (str): Columns starting with this prefix will be considered as denormalization references. The prefix is then followed by the value of `separator` parameter. Given the denormalization reference prefix is `dr` and separator is `__`, the columns with name like `dr__customer_name` will be considered as denormalization references.. [optional] # noqa: E501
+ fact_prefix (str): Columns starting with this prefix will be considered as facts. The prefix is then followed by the value of `separator` parameter. Given the fact prefix is `f` and separator is `__`, the columns with name like `f__sold` will be considered as facts.. [optional] # noqa: E501
+ generate_long_ids (bool): A flag dictating how the attribute, fact and label ids are generated. By default their ids are derived only from the column name, unless there would be a conflict (e.g. category coming from two different tables). In that case a long id format of `.` is used. If the flag is set to true, then all ids will be generated in the long form.. [optional] # noqa: E501
+ grain_prefix (str): Columns starting with this prefix will be considered as grains. The prefix is then followed by the value of `separator` parameter. Given the grain prefix is `g` and separator is `__`, the columns with name like `g__name` will be considered as grains.. [optional] # noqa: E501
+ grain_reference_prefix (str): Columns starting with this prefix will be considered as grain references. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `gr` and separator is `__`, the columns with name like `gr__customer_name` will be considered as grain references.. [optional] # noqa: E501
+ primary_label_prefix (str): Columns starting with this prefix will be considered as primary labels. The prefix is then followed by the value of `separator` parameter. Given the primary label prefix is `pl` and separator is `__`, the columns with name like `pl__country_id` will be considered as primary labels.. [optional] # noqa: E501
+ reference_prefix (str): Columns starting with this prefix will be considered as references. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `r` and separator is `__`, the columns with name like `r__customer_name` will be considered as references.. [optional] # noqa: E501
+ secondary_label_prefix (str): Columns starting with this prefix will be considered as secondary labels. The prefix is then followed by the value of `separator` parameter. Given the secondary label prefix is `sl` and separator is `__`, the columns with name like `sl__country_id_country_name` will be considered as secondary labels.. [optional] # noqa: E501
+ table_prefix (str): Tables starting with this prefix will be included. The prefix is then followed by the value of `separator` parameter. Given the table prefix is `out_table` and separator is `__`, the table with name like `out_table__customers` will be scanned.. [optional] # noqa: E501
+ view_prefix (str): Views starting with this prefix will be included. The prefix is then followed by the value of `separator` parameter. Given the view prefix is `out_view` and separator is `__`, the table with name like `out_view__us_customers` will be scanned.. [optional] # noqa: E501
+ wdf_prefix (str): Column serving as workspace data filter. No labels are auto generated for such columns.. [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.separator = separator
+ 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/grain_identifier.py b/gooddata-api-client/gooddata_api_client/model/grain_identifier.py
new file mode 100644
index 000000000..d6ab77dd8
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/grain_identifier.py
@@ -0,0 +1,285 @@
+"""
+ 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 GrainIdentifier(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',): {
+ 'ATTRIBUTE': "attribute",
+ 'DATASET': "dataset",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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, type, *args, **kwargs): # noqa: E501
+ """GrainIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Grain ID.
+ type (str): A type of the grain.
+
+ 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
+ """GrainIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Grain ID.
+ type (str): A type of the grain.
+
+ 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/granularities_formatting.py b/gooddata-api-client/gooddata_api_client/model/granularities_formatting.py
new file mode 100644
index 000000000..a65c0bf63
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/granularities_formatting.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 GranularitiesFormatting(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 {
+ 'title_base': (str,), # noqa: E501
+ 'title_pattern': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'title_base': 'titleBase', # noqa: E501
+ 'title_pattern': 'titlePattern', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, title_base, title_pattern, *args, **kwargs): # noqa: E501
+ """GranularitiesFormatting - a model defined in OpenAPI
+
+ Args:
+ title_base (str): Title base is used as a token in title pattern. If left empty, it is replaced by date dataset title.
+ title_pattern (str): This pattern is used to generate the title of attributes and labels that result from the granularities. There are two tokens available: * `%titleBase` - represents shared part by all titles, or title of Date Dataset if left empty * `%granularityTitle` - represents `DateGranularity` built-in title
+
+ 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.title_base = title_base
+ self.title_pattern = title_pattern
+ 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, title_base, title_pattern, *args, **kwargs): # noqa: E501
+ """GranularitiesFormatting - a model defined in OpenAPI
+
+ Args:
+ title_base (str): Title base is used as a token in title pattern. If left empty, it is replaced by date dataset title.
+ title_pattern (str): This pattern is used to generate the title of attributes and labels that result from the granularities. There are two tokens available: * `%titleBase` - represents shared part by all titles, or title of Date Dataset if left empty * `%granularityTitle` - represents `DateGranularity` built-in title
+
+ 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.title_base = title_base
+ self.title_pattern = title_pattern
+ 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/header_group.py b/gooddata-api-client/gooddata_api_client/model/header_group.py
new file mode 100644
index 000000000..891eff7df
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/header_group.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.execution_result_header import ExecutionResultHeader
+ globals()['ExecutionResultHeader'] = ExecutionResultHeader
+
+
+class HeaderGroup(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 {
+ 'headers': ([ExecutionResultHeader],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'headers': 'headers', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, headers, *args, **kwargs): # noqa: E501
+ """HeaderGroup - a model defined in OpenAPI
+
+ Args:
+ headers ([ExecutionResultHeader]): An array containing headers.
+
+ 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.headers = headers
+ 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, headers, *args, **kwargs): # noqa: E501
+ """HeaderGroup - a model defined in OpenAPI
+
+ Args:
+ headers ([ExecutionResultHeader]): An array containing headers.
+
+ 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.headers = headers
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/inline_filter_definition.py b/gooddata-api-client/gooddata_api_client/model/inline_filter_definition.py
new file mode 100644
index 000000000..f92d89144
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/inline_filter_definition.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.inline_filter_definition_inline import InlineFilterDefinitionInline
+ globals()['InlineFilterDefinitionInline'] = InlineFilterDefinitionInline
+
+
+class InlineFilterDefinition(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 {
+ 'inline': (InlineFilterDefinitionInline,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'inline': 'inline', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, inline, *args, **kwargs): # noqa: E501
+ """InlineFilterDefinition - a model defined in OpenAPI
+
+ Args:
+ inline (InlineFilterDefinitionInline):
+
+ 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.inline = inline
+ 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, inline, *args, **kwargs): # noqa: E501
+ """InlineFilterDefinition - a model defined in OpenAPI
+
+ Args:
+ inline (InlineFilterDefinitionInline):
+
+ 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.inline = inline
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/inline_filter_definition_inline.py b/gooddata-api-client/gooddata_api_client/model/inline_filter_definition_inline.py
new file mode 100644
index 000000000..79417e89e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/inline_filter_definition_inline.py
@@ -0,0 +1,274 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class InlineFilterDefinitionInline(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 {
+ 'filter': (str,), # noqa: E501
+ 'apply_on_result': (bool,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'filter': 'filter', # noqa: E501
+ 'apply_on_result': 'applyOnResult', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, filter, *args, **kwargs): # noqa: E501
+ """InlineFilterDefinitionInline - a model defined in OpenAPI
+
+ Args:
+ filter (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,)
+ apply_on_result (bool): [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.filter = filter
+ 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, filter, *args, **kwargs): # noqa: E501
+ """InlineFilterDefinitionInline - a model defined in OpenAPI
+
+ Args:
+ filter (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,)
+ apply_on_result (bool): [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.filter = filter
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/inline_measure_definition.py b/gooddata-api-client/gooddata_api_client/model/inline_measure_definition.py
new file mode 100644
index 000000000..346224eb3
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/inline_measure_definition.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.inline_measure_definition_inline import InlineMeasureDefinitionInline
+ globals()['InlineMeasureDefinitionInline'] = InlineMeasureDefinitionInline
+
+
+class InlineMeasureDefinition(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 {
+ 'inline': (InlineMeasureDefinitionInline,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'inline': 'inline', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, inline, *args, **kwargs): # noqa: E501
+ """InlineMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ inline (InlineMeasureDefinitionInline):
+
+ 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.inline = inline
+ 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, inline, *args, **kwargs): # noqa: E501
+ """InlineMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ inline (InlineMeasureDefinitionInline):
+
+ 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.inline = inline
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/inline_measure_definition_inline.py b/gooddata-api-client/gooddata_api_client/model/inline_measure_definition_inline.py
new file mode 100644
index 000000000..8c5dbddfd
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/inline_measure_definition_inline.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 InlineMeasureDefinitionInline(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 {
+ 'maql': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'maql': 'maql', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, maql, *args, **kwargs): # noqa: E501
+ """InlineMeasureDefinitionInline - a model defined in OpenAPI
+
+ Args:
+ maql (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.maql = maql
+ 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, maql, *args, **kwargs): # noqa: E501
+ """InlineMeasureDefinitionInline - a model defined in OpenAPI
+
+ Args:
+ maql (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.maql = maql
+ 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_analytical_dashboard_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_in.py
new file mode 100644
index 000000000..80a938ae7
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_in.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_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+
+
+class JsonApiAnalyticalDashboardIn(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",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # 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
+ """JsonApiAnalyticalDashboardIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "analyticalDashboard")
+ _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
+ """JsonApiAnalyticalDashboardIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "analyticalDashboard")
+ _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_analytical_dashboard_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_in_attributes.py
new file mode 100644
index 000000000..0c654bdf8
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_in_attributes.py
@@ -0,0 +1,280 @@
+"""
+ 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 JsonApiAnalyticalDashboardInAttributes(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 {
+ 'are_relations_valid': (bool,), # noqa: E501
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'are_relations_valid': 'areRelationsValid', # noqa: E501
+ 'content': 'content', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiAnalyticalDashboardInAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Free-form JSON content.. [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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
+ """JsonApiAnalyticalDashboardInAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Free-form JSON content.. [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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_analytical_dashboard_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_in_document.py
new file mode 100644
index 000000000..f94c9d907
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_in_document.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_analytical_dashboard_in import JsonApiAnalyticalDashboardIn
+ globals()['JsonApiAnalyticalDashboardIn'] = JsonApiAnalyticalDashboardIn
+
+
+class JsonApiAnalyticalDashboardInDocument(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': (JsonApiAnalyticalDashboardIn,), # 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
+ """JsonApiAnalyticalDashboardInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAnalyticalDashboardIn):
+
+ 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
+ """JsonApiAnalyticalDashboardInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAnalyticalDashboardIn):
+
+ 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_analytical_dashboard_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_linkage.py
new file mode 100644
index 000000000..84c1ca59e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_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 JsonApiAnalyticalDashboardLinkage(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",
+ },
+ }
+
+ 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
+ """JsonApiAnalyticalDashboardLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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', "analyticalDashboard")
+ _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
+ """JsonApiAnalyticalDashboardLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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', "analyticalDashboard")
+ _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_analytical_dashboard_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out.py
new file mode 100644
index 000000000..7c97ca22b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships import JsonApiAnalyticalDashboardOutRelationships
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiAnalyticalDashboardOutRelationships'] = JsonApiAnalyticalDashboardOutRelationships
+
+
+class JsonApiAnalyticalDashboardOut(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",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # noqa: E501
+ 'relationships': (JsonApiAnalyticalDashboardOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiAnalyticalDashboardOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiAnalyticalDashboardOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "analyticalDashboard")
+ _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
+ """JsonApiAnalyticalDashboardOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiAnalyticalDashboardOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "analyticalDashboard")
+ _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_analytical_dashboard_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_document.py
new file mode 100644
index 000000000..014741396
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_document.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 import JsonApiAnalyticalDashboardOut
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_includes import JsonApiAnalyticalDashboardOutIncludes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiAnalyticalDashboardOut'] = JsonApiAnalyticalDashboardOut
+ globals()['JsonApiAnalyticalDashboardOutIncludes'] = JsonApiAnalyticalDashboardOutIncludes
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiAnalyticalDashboardOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiAnalyticalDashboardOut,), # noqa: E501
+ 'included': ([JsonApiAnalyticalDashboardOutIncludes],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiAnalyticalDashboardOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAnalyticalDashboardOut):
+
+ 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,)
+ included ([JsonApiAnalyticalDashboardOutIncludes]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiAnalyticalDashboardOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAnalyticalDashboardOut):
+
+ 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,)
+ included ([JsonApiAnalyticalDashboardOutIncludes]): Included resources. [optional] # noqa: E501
+ 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_analytical_dashboard_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_includes.py
new file mode 100644
index 000000000..d501087c0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_includes.py
@@ -0,0 +1,368 @@
+"""
+ 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_with_links import JsonApiAnalyticalDashboardOutWithLinks
+ from gooddata_api_client.model.json_api_dashboard_plugin_in_attributes import JsonApiDashboardPluginInAttributes
+ from gooddata_api_client.model.json_api_dashboard_plugin_out_with_links import JsonApiDashboardPluginOutWithLinks
+ from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks
+ from gooddata_api_client.model.json_api_filter_context_out_relationships import JsonApiFilterContextOutRelationships
+ from gooddata_api_client.model.json_api_filter_context_out_with_links import JsonApiFilterContextOutWithLinks
+ from gooddata_api_client.model.json_api_label_out_with_links import JsonApiLabelOutWithLinks
+ from gooddata_api_client.model.json_api_metric_out_with_links import JsonApiMetricOutWithLinks
+ from gooddata_api_client.model.json_api_visualization_object_out_with_links import JsonApiVisualizationObjectOutWithLinks
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiAnalyticalDashboardOutWithLinks'] = JsonApiAnalyticalDashboardOutWithLinks
+ globals()['JsonApiDashboardPluginInAttributes'] = JsonApiDashboardPluginInAttributes
+ globals()['JsonApiDashboardPluginOutWithLinks'] = JsonApiDashboardPluginOutWithLinks
+ globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks
+ globals()['JsonApiFilterContextOutRelationships'] = JsonApiFilterContextOutRelationships
+ globals()['JsonApiFilterContextOutWithLinks'] = JsonApiFilterContextOutWithLinks
+ globals()['JsonApiLabelOutWithLinks'] = JsonApiLabelOutWithLinks
+ globals()['JsonApiMetricOutWithLinks'] = JsonApiMetricOutWithLinks
+ globals()['JsonApiVisualizationObjectOutWithLinks'] = JsonApiVisualizationObjectOutWithLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiAnalyticalDashboardOutIncludes(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',): {
+ 'DASHBOARDPLUGIN': "dashboardPlugin",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'relationships': (JsonApiFilterContextOutRelationships,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ 'attributes': (JsonApiDashboardPluginInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ '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
+ """JsonApiAnalyticalDashboardOutIncludes - 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,)
+ relationships (JsonApiFilterContextOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiDashboardPluginInAttributes): [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 "dashboardPlugin" # 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
+ """JsonApiAnalyticalDashboardOutIncludes - 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,)
+ relationships (JsonApiFilterContextOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiDashboardPluginInAttributes): [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 "dashboardPlugin" # 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': [
+ JsonApiAnalyticalDashboardOutWithLinks,
+ JsonApiDashboardPluginOutWithLinks,
+ JsonApiDatasetOutWithLinks,
+ JsonApiFilterContextOutWithLinks,
+ JsonApiLabelOutWithLinks,
+ JsonApiMetricOutWithLinks,
+ JsonApiVisualizationObjectOutWithLinks,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_list.py
new file mode 100644
index 000000000..db2ea4dbe
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_includes import JsonApiAnalyticalDashboardOutIncludes
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_with_links import JsonApiAnalyticalDashboardOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiAnalyticalDashboardOutIncludes'] = JsonApiAnalyticalDashboardOutIncludes
+ globals()['JsonApiAnalyticalDashboardOutWithLinks'] = JsonApiAnalyticalDashboardOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiAnalyticalDashboardOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiAnalyticalDashboardOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiAnalyticalDashboardOutIncludes],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiAnalyticalDashboardOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiAnalyticalDashboardOutWithLinks]):
+
+ 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,)
+ included ([JsonApiAnalyticalDashboardOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiAnalyticalDashboardOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiAnalyticalDashboardOutWithLinks]):
+
+ 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,)
+ included ([JsonApiAnalyticalDashboardOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_analytical_dashboard_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships.py
new file mode 100644
index 000000000..abc1950b8
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships.py
@@ -0,0 +1,306 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_analytical_dashboards import JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_dashboard_plugins import JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_datasets import JsonApiAnalyticalDashboardOutRelationshipsDatasets
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_filter_contexts import JsonApiAnalyticalDashboardOutRelationshipsFilterContexts
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_labels import JsonApiAnalyticalDashboardOutRelationshipsLabels
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_metrics import JsonApiAnalyticalDashboardOutRelationshipsMetrics
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_visualization_objects import JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards'] = JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins'] = JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsDatasets'] = JsonApiAnalyticalDashboardOutRelationshipsDatasets
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsFilterContexts'] = JsonApiAnalyticalDashboardOutRelationshipsFilterContexts
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsLabels'] = JsonApiAnalyticalDashboardOutRelationshipsLabels
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsMetrics'] = JsonApiAnalyticalDashboardOutRelationshipsMetrics
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects'] = JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects
+
+
+class JsonApiAnalyticalDashboardOutRelationships(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 {
+ 'analytical_dashboards': (JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards,), # noqa: E501
+ 'dashboard_plugins': (JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins,), # noqa: E501
+ 'datasets': (JsonApiAnalyticalDashboardOutRelationshipsDatasets,), # noqa: E501
+ 'filter_contexts': (JsonApiAnalyticalDashboardOutRelationshipsFilterContexts,), # noqa: E501
+ 'labels': (JsonApiAnalyticalDashboardOutRelationshipsLabels,), # noqa: E501
+ 'metrics': (JsonApiAnalyticalDashboardOutRelationshipsMetrics,), # noqa: E501
+ 'visualization_objects': (JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'analytical_dashboards': 'analyticalDashboards', # noqa: E501
+ 'dashboard_plugins': 'dashboardPlugins', # noqa: E501
+ 'datasets': 'datasets', # noqa: E501
+ 'filter_contexts': 'filterContexts', # noqa: E501
+ 'labels': 'labels', # noqa: E501
+ 'metrics': 'metrics', # noqa: E501
+ 'visualization_objects': 'visualizationObjects', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiAnalyticalDashboardOutRelationships - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ analytical_dashboards (JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards): [optional] # noqa: E501
+ dashboard_plugins (JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins): [optional] # noqa: E501
+ datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501
+ filter_contexts (JsonApiAnalyticalDashboardOutRelationshipsFilterContexts): [optional] # noqa: E501
+ labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [optional] # noqa: E501
+ metrics (JsonApiAnalyticalDashboardOutRelationshipsMetrics): [optional] # noqa: E501
+ visualization_objects (JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects): [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
+ """JsonApiAnalyticalDashboardOutRelationships - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ analytical_dashboards (JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards): [optional] # noqa: E501
+ dashboard_plugins (JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins): [optional] # noqa: E501
+ datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501
+ filter_contexts (JsonApiAnalyticalDashboardOutRelationshipsFilterContexts): [optional] # noqa: E501
+ labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [optional] # noqa: E501
+ metrics (JsonApiAnalyticalDashboardOutRelationshipsMetrics): [optional] # noqa: E501
+ visualization_objects (JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects): [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_analytical_dashboard_out_relationships_analytical_dashboards.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_analytical_dashboards.py
new file mode 100644
index 000000000..686141078
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_analytical_dashboards.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_analytical_dashboard_to_many_linkage import JsonApiAnalyticalDashboardToManyLinkage
+ globals()['JsonApiAnalyticalDashboardToManyLinkage'] = JsonApiAnalyticalDashboardToManyLinkage
+
+
+class JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards(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': (JsonApiAnalyticalDashboardToManyLinkage,), # 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
+ """JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAnalyticalDashboardToManyLinkage):
+
+ 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
+ """JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAnalyticalDashboardToManyLinkage):
+
+ 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_analytical_dashboard_out_relationships_dashboard_plugins.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_dashboard_plugins.py
new file mode 100644
index 000000000..ac3fa75fc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_dashboard_plugins.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_dashboard_plugin_to_many_linkage import JsonApiDashboardPluginToManyLinkage
+ globals()['JsonApiDashboardPluginToManyLinkage'] = JsonApiDashboardPluginToManyLinkage
+
+
+class JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins(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': (JsonApiDashboardPluginToManyLinkage,), # 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
+ """JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDashboardPluginToManyLinkage):
+
+ 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
+ """JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDashboardPluginToManyLinkage):
+
+ 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_analytical_dashboard_out_relationships_datasets.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_datasets.py
new file mode 100644
index 000000000..d546bf6f6
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_datasets.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_dataset_to_many_linkage import JsonApiDatasetToManyLinkage
+ globals()['JsonApiDatasetToManyLinkage'] = JsonApiDatasetToManyLinkage
+
+
+class JsonApiAnalyticalDashboardOutRelationshipsDatasets(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': (JsonApiDatasetToManyLinkage,), # 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
+ """JsonApiAnalyticalDashboardOutRelationshipsDatasets - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDatasetToManyLinkage):
+
+ 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
+ """JsonApiAnalyticalDashboardOutRelationshipsDatasets - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDatasetToManyLinkage):
+
+ 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_analytical_dashboard_out_relationships_filter_contexts.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_filter_contexts.py
new file mode 100644
index 000000000..e4dc845ff
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_filter_contexts.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_filter_context_to_many_linkage import JsonApiFilterContextToManyLinkage
+ globals()['JsonApiFilterContextToManyLinkage'] = JsonApiFilterContextToManyLinkage
+
+
+class JsonApiAnalyticalDashboardOutRelationshipsFilterContexts(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': (JsonApiFilterContextToManyLinkage,), # 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
+ """JsonApiAnalyticalDashboardOutRelationshipsFilterContexts - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFilterContextToManyLinkage):
+
+ 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
+ """JsonApiAnalyticalDashboardOutRelationshipsFilterContexts - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFilterContextToManyLinkage):
+
+ 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_analytical_dashboard_out_relationships_labels.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_labels.py
new file mode 100644
index 000000000..3fada8563
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_labels.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_label_to_many_linkage import JsonApiLabelToManyLinkage
+ globals()['JsonApiLabelToManyLinkage'] = JsonApiLabelToManyLinkage
+
+
+class JsonApiAnalyticalDashboardOutRelationshipsLabels(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': (JsonApiLabelToManyLinkage,), # 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
+ """JsonApiAnalyticalDashboardOutRelationshipsLabels - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiLabelToManyLinkage):
+
+ 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
+ """JsonApiAnalyticalDashboardOutRelationshipsLabels - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiLabelToManyLinkage):
+
+ 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_analytical_dashboard_out_relationships_metrics.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_metrics.py
new file mode 100644
index 000000000..a1d8db63f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_metrics.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_metric_to_many_linkage import JsonApiMetricToManyLinkage
+ globals()['JsonApiMetricToManyLinkage'] = JsonApiMetricToManyLinkage
+
+
+class JsonApiAnalyticalDashboardOutRelationshipsMetrics(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': (JsonApiMetricToManyLinkage,), # 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
+ """JsonApiAnalyticalDashboardOutRelationshipsMetrics - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiMetricToManyLinkage):
+
+ 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
+ """JsonApiAnalyticalDashboardOutRelationshipsMetrics - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiMetricToManyLinkage):
+
+ 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_analytical_dashboard_out_relationships_visualization_objects.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_visualization_objects.py
new file mode 100644
index 000000000..0cabb38c5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_relationships_visualization_objects.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_visualization_object_to_many_linkage import JsonApiVisualizationObjectToManyLinkage
+ globals()['JsonApiVisualizationObjectToManyLinkage'] = JsonApiVisualizationObjectToManyLinkage
+
+
+class JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects(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': (JsonApiVisualizationObjectToManyLinkage,), # 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
+ """JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiVisualizationObjectToManyLinkage):
+
+ 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
+ """JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiVisualizationObjectToManyLinkage):
+
+ 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_analytical_dashboard_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_with_links.py
new file mode 100644
index 000000000..723959d6e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ from gooddata_api_client.model.json_api_analytical_dashboard_out import JsonApiAnalyticalDashboardOut
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships import JsonApiAnalyticalDashboardOutRelationships
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiAnalyticalDashboardOut'] = JsonApiAnalyticalDashboardOut
+ globals()['JsonApiAnalyticalDashboardOutRelationships'] = JsonApiAnalyticalDashboardOutRelationships
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiAnalyticalDashboardOutWithLinks(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',): {
+ 'ANALYTICALDASHBOARD': "analyticalDashboard",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # noqa: E501
+ 'relationships': (JsonApiAnalyticalDashboardOutRelationships,), # 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
+ 'relationships': 'relationships', # 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
+ """JsonApiAnalyticalDashboardOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiAnalyticalDashboardOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "analyticalDashboard")
+ _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
+ """JsonApiAnalyticalDashboardOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiAnalyticalDashboardOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "analyticalDashboard")
+ _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': [
+ JsonApiAnalyticalDashboardOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_patch.py
new file mode 100644
index 000000000..e27f16cbe
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_patch.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_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+
+
+class JsonApiAnalyticalDashboardPatch(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",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # 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
+ """JsonApiAnalyticalDashboardPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "analyticalDashboard")
+ _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
+ """JsonApiAnalyticalDashboardPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "analyticalDashboard", must be one of ["analyticalDashboard", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "analyticalDashboard")
+ _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_analytical_dashboard_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_patch_document.py
new file mode 100644
index 000000000..3215cca9c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_patch_document.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_analytical_dashboard_patch import JsonApiAnalyticalDashboardPatch
+ globals()['JsonApiAnalyticalDashboardPatch'] = JsonApiAnalyticalDashboardPatch
+
+
+class JsonApiAnalyticalDashboardPatchDocument(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': (JsonApiAnalyticalDashboardPatch,), # 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
+ """JsonApiAnalyticalDashboardPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAnalyticalDashboardPatch):
+
+ 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
+ """JsonApiAnalyticalDashboardPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAnalyticalDashboardPatch):
+
+ 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_analytical_dashboard_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_to_many_linkage.py
new file mode 100644
index 000000000..344903ff6
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_analytical_dashboard_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_analytical_dashboard_linkage import JsonApiAnalyticalDashboardLinkage
+ globals()['JsonApiAnalyticalDashboardLinkage'] = JsonApiAnalyticalDashboardLinkage
+
+
+class JsonApiAnalyticalDashboardToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiAnalyticalDashboardLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiAnalyticalDashboardToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiAnalyticalDashboardLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiAnalyticalDashboardLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiAnalyticalDashboardToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiAnalyticalDashboardLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiAnalyticalDashboardLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_api_token_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_in.py
new file mode 100644
index 000000000..44e2999a0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_in.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 JsonApiApiTokenIn(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',): {
+ 'APITOKEN': "apiToken",
+ },
+ }
+
+ 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
+ """JsonApiApiTokenIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "apiToken", must be one of ["apiToken", ] # 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', "apiToken")
+ _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
+ """JsonApiApiTokenIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "apiToken", must be one of ["apiToken", ] # 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', "apiToken")
+ _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_api_token_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_in_document.py
new file mode 100644
index 000000000..2ac1ba6ed
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_in_document.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_api_token_in import JsonApiApiTokenIn
+ globals()['JsonApiApiTokenIn'] = JsonApiApiTokenIn
+
+
+class JsonApiApiTokenInDocument(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': (JsonApiApiTokenIn,), # 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
+ """JsonApiApiTokenInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiApiTokenIn):
+
+ 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
+ """JsonApiApiTokenInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiApiTokenIn):
+
+ 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_api_token_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_out.py
new file mode 100644
index 000000000..66a2bf146
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_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_api_token_out_attributes import JsonApiApiTokenOutAttributes
+ globals()['JsonApiApiTokenOutAttributes'] = JsonApiApiTokenOutAttributes
+
+
+class JsonApiApiTokenOut(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',): {
+ 'APITOKEN': "apiToken",
+ },
+ }
+
+ 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': (JsonApiApiTokenOutAttributes,), # 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
+ """JsonApiApiTokenOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "apiToken", must be one of ["apiToken", ] # 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 (JsonApiApiTokenOutAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "apiToken")
+ _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
+ """JsonApiApiTokenOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "apiToken", must be one of ["apiToken", ] # 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 (JsonApiApiTokenOutAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "apiToken")
+ _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_api_token_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_out_attributes.py
new file mode 100644
index 000000000..fab63ee7a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_out_attributes.py
@@ -0,0 +1,264 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class JsonApiApiTokenOutAttributes(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 {
+ 'bearer_token': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'bearer_token': 'bearerToken', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiApiTokenOutAttributes - 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,)
+ bearer_token (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """JsonApiApiTokenOutAttributes - 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,)
+ bearer_token (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_api_token_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_out_document.py
new file mode 100644
index 000000000..f543fa778
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_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_api_token_out import JsonApiApiTokenOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiApiTokenOut'] = JsonApiApiTokenOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiApiTokenOutDocument(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': (JsonApiApiTokenOut,), # 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
+ """JsonApiApiTokenOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiApiTokenOut):
+
+ 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
+ """JsonApiApiTokenOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiApiTokenOut):
+
+ 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_api_token_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_out_list.py
new file mode 100644
index 000000000..07a58d321
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_api_token_out_with_links import JsonApiApiTokenOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiApiTokenOutWithLinks'] = JsonApiApiTokenOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiApiTokenOutList(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': ([JsonApiApiTokenOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiApiTokenOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiApiTokenOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiApiTokenOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiApiTokenOutWithLinks]):
+
+ 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
+ """
+
+ _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_api_token_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_out_with_links.py
new file mode 100644
index 000000000..d29006ed5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_api_token_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_api_token_out import JsonApiApiTokenOut
+ from gooddata_api_client.model.json_api_api_token_out_attributes import JsonApiApiTokenOutAttributes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiApiTokenOut'] = JsonApiApiTokenOut
+ globals()['JsonApiApiTokenOutAttributes'] = JsonApiApiTokenOutAttributes
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiApiTokenOutWithLinks(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',): {
+ 'APITOKEN': "apiToken",
+ },
+ }
+
+ 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': (JsonApiApiTokenOutAttributes,), # 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
+ """JsonApiApiTokenOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "apiToken", must be one of ["apiToken", ] # 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 (JsonApiApiTokenOutAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "apiToken")
+ _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
+ """JsonApiApiTokenOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "apiToken", must be one of ["apiToken", ] # 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 (JsonApiApiTokenOutAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "apiToken")
+ _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': [
+ JsonApiApiTokenOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_attribute_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_linkage.py
new file mode 100644
index 000000000..c3adc5021
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_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 JsonApiAttributeLinkage(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',): {
+ 'ATTRIBUTE': "attribute",
+ },
+ }
+
+ 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
+ """JsonApiAttributeLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "attribute", must be one of ["attribute", ] # 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', "attribute")
+ _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
+ """JsonApiAttributeLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "attribute", must be one of ["attribute", ] # 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', "attribute")
+ _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_attribute_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out.py
new file mode 100644
index 000000000..630c8507b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_attribute_out_attributes import JsonApiAttributeOutAttributes
+ from gooddata_api_client.model.json_api_attribute_out_relationships import JsonApiAttributeOutRelationships
+ globals()['JsonApiAttributeOutAttributes'] = JsonApiAttributeOutAttributes
+ globals()['JsonApiAttributeOutRelationships'] = JsonApiAttributeOutRelationships
+
+
+class JsonApiAttributeOut(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',): {
+ 'ATTRIBUTE': "attribute",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAttributeOutAttributes,), # noqa: E501
+ 'relationships': (JsonApiAttributeOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiAttributeOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "attribute", must be one of ["attribute", ] # 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 (JsonApiAttributeOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiAttributeOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "attribute")
+ _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
+ """JsonApiAttributeOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "attribute", must be one of ["attribute", ] # 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 (JsonApiAttributeOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiAttributeOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "attribute")
+ _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_attribute_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_attributes.py
new file mode 100644
index 000000000..0123cb280
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_attributes.py
@@ -0,0 +1,313 @@
+"""
+ 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 JsonApiAttributeOutAttributes(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 = {
+ ('granularity',): {
+ 'MINUTE': "MINUTE",
+ 'HOUR': "HOUR",
+ 'DAY': "DAY",
+ 'WEEK': "WEEK",
+ 'MONTH': "MONTH",
+ 'QUARTER': "QUARTER",
+ 'YEAR': "YEAR",
+ 'MINUTE_OF_HOUR': "MINUTE_OF_HOUR",
+ 'HOUR_OF_DAY': "HOUR_OF_DAY",
+ 'DAY_OF_WEEK': "DAY_OF_WEEK",
+ 'DAY_OF_MONTH': "DAY_OF_MONTH",
+ 'DAY_OF_YEAR': "DAY_OF_YEAR",
+ 'WEEK_OF_YEAR': "WEEK_OF_YEAR",
+ 'MONTH_OF_YEAR': "MONTH_OF_YEAR",
+ 'QUARTER_OF_YEAR': "QUARTER_OF_YEAR",
+ },
+ ('sort_direction',): {
+ 'ASC': "ASC",
+ 'DESC': "DESC",
+ },
+ }
+
+ 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 {
+ 'are_relations_valid': (bool,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'granularity': (str,), # noqa: E501
+ 'sort_column': (str,), # noqa: E501
+ 'sort_direction': (str,), # noqa: E501
+ 'source_column': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'are_relations_valid': 'areRelationsValid', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'granularity': 'granularity', # noqa: E501
+ 'sort_column': 'sortColumn', # noqa: E501
+ 'sort_direction': 'sortDirection', # noqa: E501
+ 'source_column': 'sourceColumn', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiAttributeOutAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ granularity (str): [optional] # noqa: E501
+ sort_column (str): [optional] # noqa: E501
+ sort_direction (str): [optional] # noqa: E501
+ source_column (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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
+ """JsonApiAttributeOutAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ granularity (str): [optional] # noqa: E501
+ sort_column (str): [optional] # noqa: E501
+ sort_direction (str): [optional] # noqa: E501
+ source_column (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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_attribute_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_document.py
new file mode 100644
index 000000000..4e1f8d66b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_document.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_attribute_out import JsonApiAttributeOut
+ from gooddata_api_client.model.json_api_attribute_out_includes import JsonApiAttributeOutIncludes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiAttributeOut'] = JsonApiAttributeOut
+ globals()['JsonApiAttributeOutIncludes'] = JsonApiAttributeOutIncludes
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiAttributeOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiAttributeOut,), # noqa: E501
+ 'included': ([JsonApiAttributeOutIncludes],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiAttributeOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAttributeOut):
+
+ 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,)
+ included ([JsonApiAttributeOutIncludes]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiAttributeOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAttributeOut):
+
+ 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,)
+ included ([JsonApiAttributeOutIncludes]): Included resources. [optional] # noqa: E501
+ 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_attribute_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_includes.py
new file mode 100644
index 000000000..1dffd3eb4
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_includes.py
@@ -0,0 +1,353 @@
+"""
+ 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_dataset_out_with_links import JsonApiDatasetOutWithLinks
+ from gooddata_api_client.model.json_api_label_out_attributes import JsonApiLabelOutAttributes
+ from gooddata_api_client.model.json_api_label_out_relationships import JsonApiLabelOutRelationships
+ from gooddata_api_client.model.json_api_label_out_with_links import JsonApiLabelOutWithLinks
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks
+ globals()['JsonApiLabelOutAttributes'] = JsonApiLabelOutAttributes
+ globals()['JsonApiLabelOutRelationships'] = JsonApiLabelOutRelationships
+ globals()['JsonApiLabelOutWithLinks'] = JsonApiLabelOutWithLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiAttributeOutIncludes(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',): {
+ 'LABEL': "label",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'relationships': (JsonApiLabelOutRelationships,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ 'attributes': (JsonApiLabelOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ '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
+ """JsonApiAttributeOutIncludes - 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,)
+ relationships (JsonApiLabelOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiLabelOutAttributes): [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 "label" # 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
+ """JsonApiAttributeOutIncludes - 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,)
+ relationships (JsonApiLabelOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiLabelOutAttributes): [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 "label" # 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,
+ JsonApiLabelOutWithLinks,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_list.py
new file mode 100644
index 000000000..9d24cbc2d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_attribute_out_includes import JsonApiAttributeOutIncludes
+ from gooddata_api_client.model.json_api_attribute_out_with_links import JsonApiAttributeOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiAttributeOutIncludes'] = JsonApiAttributeOutIncludes
+ globals()['JsonApiAttributeOutWithLinks'] = JsonApiAttributeOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiAttributeOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiAttributeOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiAttributeOutIncludes],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiAttributeOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiAttributeOutWithLinks]):
+
+ 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,)
+ included ([JsonApiAttributeOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiAttributeOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiAttributeOutWithLinks]):
+
+ 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,)
+ included ([JsonApiAttributeOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_attribute_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_relationships.py
new file mode 100644
index 000000000..c3ebe5814
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_relationships.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_analytical_dashboard_out_relationships_labels import JsonApiAnalyticalDashboardOutRelationshipsLabels
+ from gooddata_api_client.model.json_api_attribute_out_relationships_dataset import JsonApiAttributeOutRelationshipsDataset
+ from gooddata_api_client.model.json_api_attribute_out_relationships_default_view import JsonApiAttributeOutRelationshipsDefaultView
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsLabels'] = JsonApiAnalyticalDashboardOutRelationshipsLabels
+ globals()['JsonApiAttributeOutRelationshipsDataset'] = JsonApiAttributeOutRelationshipsDataset
+ globals()['JsonApiAttributeOutRelationshipsDefaultView'] = JsonApiAttributeOutRelationshipsDefaultView
+
+
+class JsonApiAttributeOutRelationships(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 {
+ 'dataset': (JsonApiAttributeOutRelationshipsDataset,), # noqa: E501
+ 'default_view': (JsonApiAttributeOutRelationshipsDefaultView,), # noqa: E501
+ 'labels': (JsonApiAnalyticalDashboardOutRelationshipsLabels,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'dataset': 'dataset', # noqa: E501
+ 'default_view': 'defaultView', # noqa: E501
+ 'labels': 'labels', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiAttributeOutRelationships - 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,)
+ dataset (JsonApiAttributeOutRelationshipsDataset): [optional] # noqa: E501
+ default_view (JsonApiAttributeOutRelationshipsDefaultView): [optional] # noqa: E501
+ labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [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
+ """JsonApiAttributeOutRelationships - 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,)
+ dataset (JsonApiAttributeOutRelationshipsDataset): [optional] # noqa: E501
+ default_view (JsonApiAttributeOutRelationshipsDefaultView): [optional] # noqa: E501
+ labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [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_attribute_out_relationships_dataset.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_relationships_dataset.py
new file mode 100644
index 000000000..cb56e070c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_relationships_dataset.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_dataset_to_one_linkage import JsonApiDatasetToOneLinkage
+ globals()['JsonApiDatasetToOneLinkage'] = JsonApiDatasetToOneLinkage
+
+
+class JsonApiAttributeOutRelationshipsDataset(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': (JsonApiDatasetToOneLinkage,), # 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
+ """JsonApiAttributeOutRelationshipsDataset - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDatasetToOneLinkage):
+
+ 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
+ """JsonApiAttributeOutRelationshipsDataset - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDatasetToOneLinkage):
+
+ 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_attribute_out_relationships_default_view.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_relationships_default_view.py
new file mode 100644
index 000000000..ffb6d551d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_relationships_default_view.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_label_to_one_linkage import JsonApiLabelToOneLinkage
+ globals()['JsonApiLabelToOneLinkage'] = JsonApiLabelToOneLinkage
+
+
+class JsonApiAttributeOutRelationshipsDefaultView(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': (JsonApiLabelToOneLinkage,), # 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
+ """JsonApiAttributeOutRelationshipsDefaultView - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiLabelToOneLinkage):
+
+ 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
+ """JsonApiAttributeOutRelationshipsDefaultView - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiLabelToOneLinkage):
+
+ 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_attribute_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_with_links.py
new file mode 100644
index 000000000..8744a18fd
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_out import JsonApiAttributeOut
+ from gooddata_api_client.model.json_api_attribute_out_attributes import JsonApiAttributeOutAttributes
+ from gooddata_api_client.model.json_api_attribute_out_relationships import JsonApiAttributeOutRelationships
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiAttributeOut'] = JsonApiAttributeOut
+ globals()['JsonApiAttributeOutAttributes'] = JsonApiAttributeOutAttributes
+ globals()['JsonApiAttributeOutRelationships'] = JsonApiAttributeOutRelationships
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiAttributeOutWithLinks(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',): {
+ 'ATTRIBUTE': "attribute",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAttributeOutAttributes,), # noqa: E501
+ 'relationships': (JsonApiAttributeOutRelationships,), # 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
+ 'relationships': 'relationships', # 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
+ """JsonApiAttributeOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "attribute", must be one of ["attribute", ] # 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 (JsonApiAttributeOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiAttributeOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "attribute")
+ _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
+ """JsonApiAttributeOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "attribute", must be one of ["attribute", ] # 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 (JsonApiAttributeOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiAttributeOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "attribute")
+ _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': [
+ JsonApiAttributeOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_attribute_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_to_many_linkage.py
new file mode 100644
index 000000000..ff970997c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_attribute_linkage import JsonApiAttributeLinkage
+ globals()['JsonApiAttributeLinkage'] = JsonApiAttributeLinkage
+
+
+class JsonApiAttributeToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiAttributeLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiAttributeToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiAttributeLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiAttributeLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiAttributeToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiAttributeLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiAttributeLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_attribute_to_one_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_to_one_linkage.py
new file mode 100644
index 000000000..f17b256bc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_attribute_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_attribute_linkage import JsonApiAttributeLinkage
+ globals()['JsonApiAttributeLinkage'] = JsonApiAttributeLinkage
+
+
+class JsonApiAttributeToOneLinkage(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',): {
+ 'ATTRIBUTE': "attribute",
+ },
+ }
+
+ 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
+ """JsonApiAttributeToOneLinkage - 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 "attribute" # 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
+ """JsonApiAttributeToOneLinkage - 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 "attribute" # 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': [
+ JsonApiAttributeLinkage,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_in.py
new file mode 100644
index 000000000..9261c2481
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_in.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_color_palette_in_attributes import JsonApiColorPaletteInAttributes
+ globals()['JsonApiColorPaletteInAttributes'] = JsonApiColorPaletteInAttributes
+
+
+class JsonApiColorPaletteIn(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',): {
+ 'COLORPALETTE': "colorPalette",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiColorPaletteInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiColorPaletteIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "colorPalette", must be one of ["colorPalette", ] # 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', "colorPalette")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiColorPaletteIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "colorPalette", must be one of ["colorPalette", ] # 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', "colorPalette")
+ _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.attributes = attributes
+ 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_color_palette_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_in_attributes.py
new file mode 100644
index 000000000..7b56dfc79
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_in_attributes.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 JsonApiColorPaletteInAttributes(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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, content, name, *args, **kwargs): # noqa: E501
+ """JsonApiColorPaletteInAttributes - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}):
+ name (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.content = content
+ self.name = name
+ 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, content, name, *args, **kwargs): # noqa: E501
+ """JsonApiColorPaletteInAttributes - a model defined in OpenAPI
+
+ Args:
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}):
+ name (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.content = content
+ self.name = name
+ 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_color_palette_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_in_document.py
new file mode 100644
index 000000000..54ab75148
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_in_document.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_color_palette_in import JsonApiColorPaletteIn
+ globals()['JsonApiColorPaletteIn'] = JsonApiColorPaletteIn
+
+
+class JsonApiColorPaletteInDocument(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': (JsonApiColorPaletteIn,), # 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
+ """JsonApiColorPaletteInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiColorPaletteIn):
+
+ 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
+ """JsonApiColorPaletteInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiColorPaletteIn):
+
+ 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_color_palette_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_out.py
new file mode 100644
index 000000000..fe32a9f94
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_out.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_color_palette_in_attributes import JsonApiColorPaletteInAttributes
+ globals()['JsonApiColorPaletteInAttributes'] = JsonApiColorPaletteInAttributes
+
+
+class JsonApiColorPaletteOut(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',): {
+ 'COLORPALETTE': "colorPalette",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiColorPaletteInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiColorPaletteOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "colorPalette", must be one of ["colorPalette", ] # 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', "colorPalette")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiColorPaletteOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "colorPalette", must be one of ["colorPalette", ] # 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', "colorPalette")
+ _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.attributes = attributes
+ 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_color_palette_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_out_document.py
new file mode 100644
index 000000000..743f64ef0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_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_color_palette_out import JsonApiColorPaletteOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiColorPaletteOut'] = JsonApiColorPaletteOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiColorPaletteOutDocument(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': (JsonApiColorPaletteOut,), # 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
+ """JsonApiColorPaletteOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiColorPaletteOut):
+
+ 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
+ """JsonApiColorPaletteOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiColorPaletteOut):
+
+ 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_color_palette_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_out_list.py
new file mode 100644
index 000000000..47d912fcf
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_color_palette_out_with_links import JsonApiColorPaletteOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiColorPaletteOutWithLinks'] = JsonApiColorPaletteOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiColorPaletteOutList(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': ([JsonApiColorPaletteOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiColorPaletteOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiColorPaletteOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiColorPaletteOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiColorPaletteOutWithLinks]):
+
+ 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
+ """
+
+ _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_color_palette_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_out_with_links.py
new file mode 100644
index 000000000..a71da81f1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_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_color_palette_in_attributes import JsonApiColorPaletteInAttributes
+ from gooddata_api_client.model.json_api_color_palette_out import JsonApiColorPaletteOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiColorPaletteInAttributes'] = JsonApiColorPaletteInAttributes
+ globals()['JsonApiColorPaletteOut'] = JsonApiColorPaletteOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiColorPaletteOutWithLinks(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',): {
+ 'COLORPALETTE': "colorPalette",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiColorPaletteInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # 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
+ """JsonApiColorPaletteOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "colorPalette", must be one of ["colorPalette", ] # 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,)
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "colorPalette")
+ _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
+ """JsonApiColorPaletteOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "colorPalette", must be one of ["colorPalette", ] # 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,)
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "colorPalette")
+ _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': [
+ JsonApiColorPaletteOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_patch.py
new file mode 100644
index 000000000..477287c2b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_patch.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_color_palette_patch_attributes import JsonApiColorPalettePatchAttributes
+ globals()['JsonApiColorPalettePatchAttributes'] = JsonApiColorPalettePatchAttributes
+
+
+class JsonApiColorPalettePatch(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',): {
+ 'COLORPALETTE': "colorPalette",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiColorPalettePatchAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiColorPalettePatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPalettePatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "colorPalette", must be one of ["colorPalette", ] # 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', "colorPalette")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiColorPalettePatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPalettePatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "colorPalette", must be one of ["colorPalette", ] # 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', "colorPalette")
+ _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.attributes = attributes
+ 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_color_palette_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_patch_attributes.py
new file mode 100644
index 000000000..c73160884
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_patch_attributes.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 JsonApiColorPalettePatchAttributes(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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiColorPalettePatchAttributes - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """JsonApiColorPalettePatchAttributes - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_patch_document.py
new file mode 100644
index 000000000..e967f77a7
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_color_palette_patch_document.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_color_palette_patch import JsonApiColorPalettePatch
+ globals()['JsonApiColorPalettePatch'] = JsonApiColorPalettePatch
+
+
+class JsonApiColorPalettePatchDocument(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': (JsonApiColorPalettePatch,), # 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
+ """JsonApiColorPalettePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiColorPalettePatch):
+
+ 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
+ """JsonApiColorPalettePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiColorPalettePatch):
+
+ 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_cookie_security_configuration_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_in.py
new file mode 100644
index 000000000..facaa4355
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_in.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_cookie_security_configuration_in_attributes import JsonApiCookieSecurityConfigurationInAttributes
+ globals()['JsonApiCookieSecurityConfigurationInAttributes'] = JsonApiCookieSecurityConfigurationInAttributes
+
+
+class JsonApiCookieSecurityConfigurationIn(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',): {
+ 'COOKIESECURITYCONFIGURATION': "cookieSecurityConfiguration",
+ },
+ }
+
+ 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': (JsonApiCookieSecurityConfigurationInAttributes,), # 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
+ """JsonApiCookieSecurityConfigurationIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cookieSecurityConfiguration", must be one of ["cookieSecurityConfiguration", ] # 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 (JsonApiCookieSecurityConfigurationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "cookieSecurityConfiguration")
+ _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
+ """JsonApiCookieSecurityConfigurationIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cookieSecurityConfiguration", must be one of ["cookieSecurityConfiguration", ] # 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 (JsonApiCookieSecurityConfigurationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "cookieSecurityConfiguration")
+ _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_cookie_security_configuration_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_in_attributes.py
new file mode 100644
index 000000000..15a0ac217
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_in_attributes.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 JsonApiCookieSecurityConfigurationInAttributes(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 {
+ 'last_rotation': (datetime,), # noqa: E501
+ 'rotation_interval': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'last_rotation': 'lastRotation', # noqa: E501
+ 'rotation_interval': 'rotationInterval', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiCookieSecurityConfigurationInAttributes - 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,)
+ last_rotation (datetime): [optional] # noqa: E501
+ rotation_interval (str): Length of interval between automatic rotations expressed in format of ISO 8601 duration. [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
+ """JsonApiCookieSecurityConfigurationInAttributes - 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,)
+ last_rotation (datetime): [optional] # noqa: E501
+ rotation_interval (str): Length of interval between automatic rotations expressed in format of ISO 8601 duration. [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_cookie_security_configuration_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_in_document.py
new file mode 100644
index 000000000..f0b04edfb
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_in_document.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_cookie_security_configuration_in import JsonApiCookieSecurityConfigurationIn
+ globals()['JsonApiCookieSecurityConfigurationIn'] = JsonApiCookieSecurityConfigurationIn
+
+
+class JsonApiCookieSecurityConfigurationInDocument(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': (JsonApiCookieSecurityConfigurationIn,), # 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
+ """JsonApiCookieSecurityConfigurationInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCookieSecurityConfigurationIn):
+
+ 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
+ """JsonApiCookieSecurityConfigurationInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCookieSecurityConfigurationIn):
+
+ 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_cookie_security_configuration_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_out.py
new file mode 100644
index 000000000..bd3943dcc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_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_cookie_security_configuration_in_attributes import JsonApiCookieSecurityConfigurationInAttributes
+ globals()['JsonApiCookieSecurityConfigurationInAttributes'] = JsonApiCookieSecurityConfigurationInAttributes
+
+
+class JsonApiCookieSecurityConfigurationOut(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',): {
+ 'COOKIESECURITYCONFIGURATION': "cookieSecurityConfiguration",
+ },
+ }
+
+ 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': (JsonApiCookieSecurityConfigurationInAttributes,), # 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
+ """JsonApiCookieSecurityConfigurationOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cookieSecurityConfiguration", must be one of ["cookieSecurityConfiguration", ] # 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 (JsonApiCookieSecurityConfigurationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "cookieSecurityConfiguration")
+ _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
+ """JsonApiCookieSecurityConfigurationOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cookieSecurityConfiguration", must be one of ["cookieSecurityConfiguration", ] # 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 (JsonApiCookieSecurityConfigurationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "cookieSecurityConfiguration")
+ _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_cookie_security_configuration_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_out_document.py
new file mode 100644
index 000000000..99ab0c8da
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_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_cookie_security_configuration_out import JsonApiCookieSecurityConfigurationOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiCookieSecurityConfigurationOut'] = JsonApiCookieSecurityConfigurationOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiCookieSecurityConfigurationOutDocument(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': (JsonApiCookieSecurityConfigurationOut,), # 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
+ """JsonApiCookieSecurityConfigurationOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCookieSecurityConfigurationOut):
+
+ 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
+ """JsonApiCookieSecurityConfigurationOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCookieSecurityConfigurationOut):
+
+ 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_cookie_security_configuration_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_patch.py
new file mode 100644
index 000000000..19d4ec7d3
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_patch.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_cookie_security_configuration_in_attributes import JsonApiCookieSecurityConfigurationInAttributes
+ globals()['JsonApiCookieSecurityConfigurationInAttributes'] = JsonApiCookieSecurityConfigurationInAttributes
+
+
+class JsonApiCookieSecurityConfigurationPatch(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',): {
+ 'COOKIESECURITYCONFIGURATION': "cookieSecurityConfiguration",
+ },
+ }
+
+ 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': (JsonApiCookieSecurityConfigurationInAttributes,), # 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
+ """JsonApiCookieSecurityConfigurationPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cookieSecurityConfiguration", must be one of ["cookieSecurityConfiguration", ] # 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 (JsonApiCookieSecurityConfigurationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "cookieSecurityConfiguration")
+ _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
+ """JsonApiCookieSecurityConfigurationPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cookieSecurityConfiguration", must be one of ["cookieSecurityConfiguration", ] # 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 (JsonApiCookieSecurityConfigurationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "cookieSecurityConfiguration")
+ _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_cookie_security_configuration_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_patch_document.py
new file mode 100644
index 000000000..712a3f31b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_cookie_security_configuration_patch_document.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_cookie_security_configuration_patch import JsonApiCookieSecurityConfigurationPatch
+ globals()['JsonApiCookieSecurityConfigurationPatch'] = JsonApiCookieSecurityConfigurationPatch
+
+
+class JsonApiCookieSecurityConfigurationPatchDocument(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': (JsonApiCookieSecurityConfigurationPatch,), # 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
+ """JsonApiCookieSecurityConfigurationPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCookieSecurityConfigurationPatch):
+
+ 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
+ """JsonApiCookieSecurityConfigurationPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCookieSecurityConfigurationPatch):
+
+ 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_csp_directive_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_in.py
new file mode 100644
index 000000000..9ebde6c6d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_in.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_csp_directive_in_attributes import JsonApiCspDirectiveInAttributes
+ globals()['JsonApiCspDirectiveInAttributes'] = JsonApiCspDirectiveInAttributes
+
+
+class JsonApiCspDirectiveIn(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',): {
+ 'CSPDIRECTIVE': "cspDirective",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiCspDirectiveInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectiveIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiCspDirectiveInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cspDirective", must be one of ["cspDirective", ] # 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', "cspDirective")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectiveIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiCspDirectiveInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cspDirective", must be one of ["cspDirective", ] # 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', "cspDirective")
+ _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.attributes = attributes
+ 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_csp_directive_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_in_attributes.py
new file mode 100644
index 000000000..fc0f6def7
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_in_attributes.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 JsonApiCspDirectiveInAttributes(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 {
+ 'sources': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'sources': 'sources', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, sources, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectiveInAttributes - a model defined in OpenAPI
+
+ Args:
+ sources ([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.sources = sources
+ 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, sources, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectiveInAttributes - a model defined in OpenAPI
+
+ Args:
+ sources ([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.sources = sources
+ 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_csp_directive_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_in_document.py
new file mode 100644
index 000000000..fd338fc59
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_in_document.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_csp_directive_in import JsonApiCspDirectiveIn
+ globals()['JsonApiCspDirectiveIn'] = JsonApiCspDirectiveIn
+
+
+class JsonApiCspDirectiveInDocument(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': (JsonApiCspDirectiveIn,), # 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
+ """JsonApiCspDirectiveInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCspDirectiveIn):
+
+ 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
+ """JsonApiCspDirectiveInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCspDirectiveIn):
+
+ 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_csp_directive_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_out.py
new file mode 100644
index 000000000..f3ec2892f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_out.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_csp_directive_in_attributes import JsonApiCspDirectiveInAttributes
+ globals()['JsonApiCspDirectiveInAttributes'] = JsonApiCspDirectiveInAttributes
+
+
+class JsonApiCspDirectiveOut(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',): {
+ 'CSPDIRECTIVE': "cspDirective",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiCspDirectiveInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectiveOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiCspDirectiveInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cspDirective", must be one of ["cspDirective", ] # 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', "cspDirective")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectiveOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiCspDirectiveInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cspDirective", must be one of ["cspDirective", ] # 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', "cspDirective")
+ _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.attributes = attributes
+ 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_csp_directive_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_out_document.py
new file mode 100644
index 000000000..02199f3a4
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_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_csp_directive_out import JsonApiCspDirectiveOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiCspDirectiveOut'] = JsonApiCspDirectiveOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiCspDirectiveOutDocument(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': (JsonApiCspDirectiveOut,), # 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
+ """JsonApiCspDirectiveOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCspDirectiveOut):
+
+ 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
+ """JsonApiCspDirectiveOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCspDirectiveOut):
+
+ 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_csp_directive_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_out_list.py
new file mode 100644
index 000000000..f3bfc4922
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_csp_directive_out_with_links import JsonApiCspDirectiveOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiCspDirectiveOutWithLinks'] = JsonApiCspDirectiveOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiCspDirectiveOutList(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': ([JsonApiCspDirectiveOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiCspDirectiveOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiCspDirectiveOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiCspDirectiveOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiCspDirectiveOutWithLinks]):
+
+ 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
+ """
+
+ _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_csp_directive_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_out_with_links.py
new file mode 100644
index 000000000..5a773aae2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_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_csp_directive_in_attributes import JsonApiCspDirectiveInAttributes
+ from gooddata_api_client.model.json_api_csp_directive_out import JsonApiCspDirectiveOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiCspDirectiveInAttributes'] = JsonApiCspDirectiveInAttributes
+ globals()['JsonApiCspDirectiveOut'] = JsonApiCspDirectiveOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiCspDirectiveOutWithLinks(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',): {
+ 'CSPDIRECTIVE': "cspDirective",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiCspDirectiveInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # 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
+ """JsonApiCspDirectiveOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiCspDirectiveInAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "cspDirective", must be one of ["cspDirective", ] # 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,)
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "cspDirective")
+ _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
+ """JsonApiCspDirectiveOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiCspDirectiveInAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "cspDirective", must be one of ["cspDirective", ] # 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,)
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "cspDirective")
+ _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': [
+ JsonApiCspDirectiveOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_patch.py
new file mode 100644
index 000000000..8836b2f1c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_patch.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_csp_directive_patch_attributes import JsonApiCspDirectivePatchAttributes
+ globals()['JsonApiCspDirectivePatchAttributes'] = JsonApiCspDirectivePatchAttributes
+
+
+class JsonApiCspDirectivePatch(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',): {
+ 'CSPDIRECTIVE': "cspDirective",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiCspDirectivePatchAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectivePatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiCspDirectivePatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cspDirective", must be one of ["cspDirective", ] # 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', "cspDirective")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectivePatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiCspDirectivePatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "cspDirective", must be one of ["cspDirective", ] # 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', "cspDirective")
+ _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.attributes = attributes
+ 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_csp_directive_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_patch_attributes.py
new file mode 100644
index 000000000..a1733e826
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_patch_attributes.py
@@ -0,0 +1,264 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class JsonApiCspDirectivePatchAttributes(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 {
+ 'sources': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'sources': 'sources', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectivePatchAttributes - 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,)
+ sources ([str]): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """JsonApiCspDirectivePatchAttributes - 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,)
+ sources ([str]): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_patch_document.py
new file mode 100644
index 000000000..bf7e0316b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_csp_directive_patch_document.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_csp_directive_patch import JsonApiCspDirectivePatch
+ globals()['JsonApiCspDirectivePatch'] = JsonApiCspDirectivePatch
+
+
+class JsonApiCspDirectivePatchDocument(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': (JsonApiCspDirectivePatch,), # 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
+ """JsonApiCspDirectivePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCspDirectivePatch):
+
+ 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
+ """JsonApiCspDirectivePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiCspDirectivePatch):
+
+ 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_dashboard_plugin_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_in.py
new file mode 100644
index 000000000..b2fefedf9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_in.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_dashboard_plugin_in_attributes import JsonApiDashboardPluginInAttributes
+ globals()['JsonApiDashboardPluginInAttributes'] = JsonApiDashboardPluginInAttributes
+
+
+class JsonApiDashboardPluginIn(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',): {
+ 'DASHBOARDPLUGIN': "dashboardPlugin",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiDashboardPluginInAttributes,), # 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
+ """JsonApiDashboardPluginIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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 (JsonApiDashboardPluginInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dashboardPlugin")
+ _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
+ """JsonApiDashboardPluginIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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 (JsonApiDashboardPluginInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dashboardPlugin")
+ _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_dashboard_plugin_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_in_attributes.py
new file mode 100644
index 000000000..f538086aa
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_in_attributes.py
@@ -0,0 +1,280 @@
+"""
+ 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 JsonApiDashboardPluginInAttributes(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 {
+ 'are_relations_valid': (bool,), # noqa: E501
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'are_relations_valid': 'areRelationsValid', # noqa: E501
+ 'content': 'content', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiDashboardPluginInAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Free-form JSON content.. [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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
+ """JsonApiDashboardPluginInAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Free-form JSON content.. [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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_dashboard_plugin_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_in_document.py
new file mode 100644
index 000000000..1fe44abe1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_in_document.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_dashboard_plugin_in import JsonApiDashboardPluginIn
+ globals()['JsonApiDashboardPluginIn'] = JsonApiDashboardPluginIn
+
+
+class JsonApiDashboardPluginInDocument(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': (JsonApiDashboardPluginIn,), # 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
+ """JsonApiDashboardPluginInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDashboardPluginIn):
+
+ 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
+ """JsonApiDashboardPluginInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDashboardPluginIn):
+
+ 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_dashboard_plugin_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_linkage.py
new file mode 100644
index 000000000..9ec0c7432
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_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 JsonApiDashboardPluginLinkage(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',): {
+ 'DASHBOARDPLUGIN': "dashboardPlugin",
+ },
+ }
+
+ 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
+ """JsonApiDashboardPluginLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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', "dashboardPlugin")
+ _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
+ """JsonApiDashboardPluginLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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', "dashboardPlugin")
+ _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_dashboard_plugin_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_out.py
new file mode 100644
index 000000000..c64ab5c7d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_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_dashboard_plugin_in_attributes import JsonApiDashboardPluginInAttributes
+ globals()['JsonApiDashboardPluginInAttributes'] = JsonApiDashboardPluginInAttributes
+
+
+class JsonApiDashboardPluginOut(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',): {
+ 'DASHBOARDPLUGIN': "dashboardPlugin",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiDashboardPluginInAttributes,), # 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
+ """JsonApiDashboardPluginOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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 (JsonApiDashboardPluginInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dashboardPlugin")
+ _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
+ """JsonApiDashboardPluginOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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 (JsonApiDashboardPluginInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dashboardPlugin")
+ _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_dashboard_plugin_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_out_document.py
new file mode 100644
index 000000000..dcbde130e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_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_dashboard_plugin_out import JsonApiDashboardPluginOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiDashboardPluginOut'] = JsonApiDashboardPluginOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiDashboardPluginOutDocument(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': (JsonApiDashboardPluginOut,), # 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
+ """JsonApiDashboardPluginOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDashboardPluginOut):
+
+ 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
+ """JsonApiDashboardPluginOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDashboardPluginOut):
+
+ 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_dashboard_plugin_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_out_list.py
new file mode 100644
index 000000000..5d2cd1b69
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_dashboard_plugin_out_with_links import JsonApiDashboardPluginOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiDashboardPluginOutWithLinks'] = JsonApiDashboardPluginOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiDashboardPluginOutList(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': ([JsonApiDashboardPluginOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiDashboardPluginOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDashboardPluginOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiDashboardPluginOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDashboardPluginOutWithLinks]):
+
+ 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
+ """
+
+ _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_dashboard_plugin_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_out_with_links.py
new file mode 100644
index 000000000..deb4ce98d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_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_dashboard_plugin_in_attributes import JsonApiDashboardPluginInAttributes
+ from gooddata_api_client.model.json_api_dashboard_plugin_out import JsonApiDashboardPluginOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiDashboardPluginInAttributes'] = JsonApiDashboardPluginInAttributes
+ globals()['JsonApiDashboardPluginOut'] = JsonApiDashboardPluginOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiDashboardPluginOutWithLinks(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',): {
+ 'DASHBOARDPLUGIN': "dashboardPlugin",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiDashboardPluginInAttributes,), # 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
+ """JsonApiDashboardPluginOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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 (JsonApiDashboardPluginInAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dashboardPlugin")
+ _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
+ """JsonApiDashboardPluginOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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 (JsonApiDashboardPluginInAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dashboardPlugin")
+ _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': [
+ JsonApiDashboardPluginOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_patch.py
new file mode 100644
index 000000000..c9c1b7295
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_patch.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_dashboard_plugin_in_attributes import JsonApiDashboardPluginInAttributes
+ globals()['JsonApiDashboardPluginInAttributes'] = JsonApiDashboardPluginInAttributes
+
+
+class JsonApiDashboardPluginPatch(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',): {
+ 'DASHBOARDPLUGIN': "dashboardPlugin",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiDashboardPluginInAttributes,), # 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
+ """JsonApiDashboardPluginPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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 (JsonApiDashboardPluginInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dashboardPlugin")
+ _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
+ """JsonApiDashboardPluginPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dashboardPlugin", must be one of ["dashboardPlugin", ] # 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 (JsonApiDashboardPluginInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dashboardPlugin")
+ _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_dashboard_plugin_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_patch_document.py
new file mode 100644
index 000000000..6faa17cac
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_patch_document.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_dashboard_plugin_patch import JsonApiDashboardPluginPatch
+ globals()['JsonApiDashboardPluginPatch'] = JsonApiDashboardPluginPatch
+
+
+class JsonApiDashboardPluginPatchDocument(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': (JsonApiDashboardPluginPatch,), # 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
+ """JsonApiDashboardPluginPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDashboardPluginPatch):
+
+ 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
+ """JsonApiDashboardPluginPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDashboardPluginPatch):
+
+ 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_dashboard_plugin_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_to_many_linkage.py
new file mode 100644
index 000000000..206fd3a09
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dashboard_plugin_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_dashboard_plugin_linkage import JsonApiDashboardPluginLinkage
+ globals()['JsonApiDashboardPluginLinkage'] = JsonApiDashboardPluginLinkage
+
+
+class JsonApiDashboardPluginToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiDashboardPluginLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiDashboardPluginToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiDashboardPluginLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiDashboardPluginLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiDashboardPluginToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiDashboardPluginLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiDashboardPluginLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out.py
new file mode 100644
index 000000000..ad7ea3ef5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out.py
@@ -0,0 +1,304 @@
+"""
+ 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_data_source_identifier_out_attributes import JsonApiDataSourceIdentifierOutAttributes
+ from gooddata_api_client.model.json_api_data_source_identifier_out_meta import JsonApiDataSourceIdentifierOutMeta
+ globals()['JsonApiDataSourceIdentifierOutAttributes'] = JsonApiDataSourceIdentifierOutAttributes
+ globals()['JsonApiDataSourceIdentifierOutMeta'] = JsonApiDataSourceIdentifierOutMeta
+
+
+class JsonApiDataSourceIdentifierOut(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',): {
+ 'DATASOURCEIDENTIFIER': "dataSourceIdentifier",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiDataSourceIdentifierOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'meta': (JsonApiDataSourceIdentifierOutMeta,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceIdentifierOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourceIdentifierOutAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSourceIdentifier", must be one of ["dataSourceIdentifier", ] # 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,)
+ meta (JsonApiDataSourceIdentifierOutMeta): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSourceIdentifier")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceIdentifierOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourceIdentifierOutAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSourceIdentifier", must be one of ["dataSourceIdentifier", ] # 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,)
+ meta (JsonApiDataSourceIdentifierOutMeta): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSourceIdentifier")
+ _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.attributes = attributes
+ 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_data_source_identifier_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py
new file mode 100644
index 000000000..c4b831cff
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_attributes.py
@@ -0,0 +1,294 @@
+"""
+ 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 JsonApiDataSourceIdentifierOutAttributes(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',): {
+ 'POSTGRESQL': "POSTGRESQL",
+ 'REDSHIFT': "REDSHIFT",
+ 'VERTICA': "VERTICA",
+ 'SNOWFLAKE': "SNOWFLAKE",
+ 'ADS': "ADS",
+ 'BIGQUERY': "BIGQUERY",
+ 'MSSQL': "MSSQL",
+ 'PRESTO': "PRESTO",
+ 'DREMIO': "DREMIO",
+ 'DRILL': "DRILL",
+ },
+ }
+
+ 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 {
+ 'name': (str,), # noqa: E501
+ 'schema': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'schema': 'schema', # noqa: E501
+ 'type': 'type', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, schema, type, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceIdentifierOutAttributes - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ schema (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.name = name
+ self.schema = schema
+ 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, name, schema, type, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceIdentifierOutAttributes - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ schema (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.name = name
+ self.schema = schema
+ 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_data_source_identifier_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_document.py
new file mode 100644
index 000000000..0816d214d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_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_data_source_identifier_out import JsonApiDataSourceIdentifierOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiDataSourceIdentifierOut'] = JsonApiDataSourceIdentifierOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiDataSourceIdentifierOutDocument(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': (JsonApiDataSourceIdentifierOut,), # 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
+ """JsonApiDataSourceIdentifierOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourceIdentifierOut):
+
+ 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
+ """JsonApiDataSourceIdentifierOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourceIdentifierOut):
+
+ 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_data_source_identifier_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_list.py
new file mode 100644
index 000000000..0e6b05f2d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_data_source_identifier_out_with_links import JsonApiDataSourceIdentifierOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiDataSourceIdentifierOutWithLinks'] = JsonApiDataSourceIdentifierOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiDataSourceIdentifierOutList(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': ([JsonApiDataSourceIdentifierOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiDataSourceIdentifierOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDataSourceIdentifierOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiDataSourceIdentifierOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDataSourceIdentifierOutWithLinks]):
+
+ 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
+ """
+
+ _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_data_source_identifier_out_meta.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_meta.py
new file mode 100644
index 000000000..99449152d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_meta.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 JsonApiDataSourceIdentifierOutMeta(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 = {
+ ('permissions',): {
+ 'MANAGE': "MANAGE",
+ 'USE': "USE",
+ },
+ }
+
+ 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 {
+ 'permissions': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'permissions': 'permissions', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceIdentifierOutMeta - 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,)
+ permissions ([str]): List of valid permissions for a logged user.. [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
+ """JsonApiDataSourceIdentifierOutMeta - 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,)
+ permissions ([str]): List of valid permissions for a logged user.. [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_data_source_identifier_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_with_links.py
new file mode 100644
index 000000000..5cbdbfa87
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_identifier_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_data_source_identifier_out import JsonApiDataSourceIdentifierOut
+ from gooddata_api_client.model.json_api_data_source_identifier_out_attributes import JsonApiDataSourceIdentifierOutAttributes
+ from gooddata_api_client.model.json_api_data_source_identifier_out_meta import JsonApiDataSourceIdentifierOutMeta
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiDataSourceIdentifierOut'] = JsonApiDataSourceIdentifierOut
+ globals()['JsonApiDataSourceIdentifierOutAttributes'] = JsonApiDataSourceIdentifierOutAttributes
+ globals()['JsonApiDataSourceIdentifierOutMeta'] = JsonApiDataSourceIdentifierOutMeta
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiDataSourceIdentifierOutWithLinks(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',): {
+ 'DATASOURCEIDENTIFIER': "dataSourceIdentifier",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiDataSourceIdentifierOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'meta': (JsonApiDataSourceIdentifierOutMeta,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'meta': 'meta', # 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
+ """JsonApiDataSourceIdentifierOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiDataSourceIdentifierOutAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dataSourceIdentifier", must be one of ["dataSourceIdentifier", ] # 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,)
+ meta (JsonApiDataSourceIdentifierOutMeta): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSourceIdentifier")
+ _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
+ """JsonApiDataSourceIdentifierOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiDataSourceIdentifierOutAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dataSourceIdentifier", must be one of ["dataSourceIdentifier", ] # 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,)
+ meta (JsonApiDataSourceIdentifierOutMeta): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSourceIdentifier")
+ _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': [
+ JsonApiDataSourceIdentifierOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in.py
new file mode 100644
index 000000000..8712da2ed
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_data_source_in_attributes import JsonApiDataSourceInAttributes
+ globals()['JsonApiDataSourceInAttributes'] = JsonApiDataSourceInAttributes
+
+
+class JsonApiDataSourceIn(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',): {
+ 'DATASOURCE': "dataSource",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiDataSourceInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourceInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSource", must be one of ["dataSource", ] # 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', "dataSource")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourceInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSource", must be one of ["dataSource", ] # 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', "dataSource")
+ _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.attributes = attributes
+ 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_data_source_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py
new file mode 100644
index 000000000..8da4de890
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes.py
@@ -0,0 +1,328 @@
+"""
+ 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_data_source_in_attributes_parameters_inner import JsonApiDataSourceInAttributesParametersInner
+ globals()['JsonApiDataSourceInAttributesParametersInner'] = JsonApiDataSourceInAttributesParametersInner
+
+
+class JsonApiDataSourceInAttributes(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',): {
+ 'POSTGRESQL': "POSTGRESQL",
+ 'REDSHIFT': "REDSHIFT",
+ 'VERTICA': "VERTICA",
+ 'SNOWFLAKE': "SNOWFLAKE",
+ 'ADS': "ADS",
+ 'BIGQUERY': "BIGQUERY",
+ 'MSSQL': "MSSQL",
+ 'PRESTO': "PRESTO",
+ 'DREMIO': "DREMIO",
+ 'DRILL': "DRILL",
+ },
+ }
+
+ 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 {
+ 'name': (str,), # noqa: E501
+ 'schema': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'cache_path': ([str],), # noqa: E501
+ 'enable_caching': (bool,), # noqa: E501
+ 'parameters': ([JsonApiDataSourceInAttributesParametersInner],), # noqa: E501
+ 'password': (str,), # noqa: E501
+ 'token': (str,), # noqa: E501
+ 'url': (str,), # noqa: E501
+ 'username': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'schema': 'schema', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'cache_path': 'cachePath', # noqa: E501
+ 'enable_caching': 'enableCaching', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
+ 'password': 'password', # noqa: E501
+ 'token': 'token', # noqa: E501
+ 'url': 'url', # noqa: E501
+ 'username': 'username', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, schema, type, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceInAttributes - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ schema (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,)
+ cache_path ([str]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ password (str): [optional] # noqa: E501
+ token (str): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
+ username (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.name = name
+ self.schema = schema
+ 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, name, schema, type, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceInAttributes - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ schema (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,)
+ cache_path ([str]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ password (str): [optional] # noqa: E501
+ token (str): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
+ username (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.name = name
+ self.schema = schema
+ 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_data_source_in_attributes_parameters_inner.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes_parameters_inner.py
new file mode 100644
index 000000000..334ebc4ff
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_attributes_parameters_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
+
+
+
+class JsonApiDataSourceInAttributesParametersInner(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 {
+ 'name': (str,), # noqa: E501
+ 'value': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'value': 'value', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, value, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceInAttributesParametersInner - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ 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.name = name
+ 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, name, value, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceInAttributesParametersInner - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ 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.name = name
+ 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/json_api_data_source_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_document.py
new file mode 100644
index 000000000..366298100
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_in_document.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_data_source_in import JsonApiDataSourceIn
+ globals()['JsonApiDataSourceIn'] = JsonApiDataSourceIn
+
+
+class JsonApiDataSourceInDocument(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': (JsonApiDataSourceIn,), # 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
+ """JsonApiDataSourceInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourceIn):
+
+ 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
+ """JsonApiDataSourceInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourceIn):
+
+ 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_data_source_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out.py
new file mode 100644
index 000000000..12dcedf1b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out.py
@@ -0,0 +1,304 @@
+"""
+ 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_data_source_identifier_out_meta import JsonApiDataSourceIdentifierOutMeta
+ from gooddata_api_client.model.json_api_data_source_out_attributes import JsonApiDataSourceOutAttributes
+ globals()['JsonApiDataSourceIdentifierOutMeta'] = JsonApiDataSourceIdentifierOutMeta
+ globals()['JsonApiDataSourceOutAttributes'] = JsonApiDataSourceOutAttributes
+
+
+class JsonApiDataSourceOut(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',): {
+ 'DATASOURCE': "dataSource",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiDataSourceOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'meta': (JsonApiDataSourceIdentifierOutMeta,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourceOutAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSource", must be one of ["dataSource", ] # 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,)
+ meta (JsonApiDataSourceIdentifierOutMeta): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSource")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourceOutAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSource", must be one of ["dataSource", ] # 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,)
+ meta (JsonApiDataSourceIdentifierOutMeta): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSource")
+ _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.attributes = attributes
+ 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_data_source_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py
new file mode 100644
index 000000000..806640fc6
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_attributes.py
@@ -0,0 +1,324 @@
+"""
+ 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_data_source_in_attributes_parameters_inner import JsonApiDataSourceInAttributesParametersInner
+ globals()['JsonApiDataSourceInAttributesParametersInner'] = JsonApiDataSourceInAttributesParametersInner
+
+
+class JsonApiDataSourceOutAttributes(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',): {
+ 'POSTGRESQL': "POSTGRESQL",
+ 'REDSHIFT': "REDSHIFT",
+ 'VERTICA': "VERTICA",
+ 'SNOWFLAKE': "SNOWFLAKE",
+ 'ADS': "ADS",
+ 'BIGQUERY': "BIGQUERY",
+ 'MSSQL': "MSSQL",
+ 'PRESTO': "PRESTO",
+ 'DREMIO': "DREMIO",
+ 'DRILL': "DRILL",
+ },
+ }
+
+ 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 {
+ 'name': (str,), # noqa: E501
+ 'schema': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'cache_path': ([str],), # noqa: E501
+ 'decoded_parameters': ([JsonApiDataSourceInAttributesParametersInner],), # noqa: E501
+ 'enable_caching': (bool,), # noqa: E501
+ 'parameters': ([JsonApiDataSourceInAttributesParametersInner],), # noqa: E501
+ 'url': (str,), # noqa: E501
+ 'username': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'schema': 'schema', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'cache_path': 'cachePath', # noqa: E501
+ 'decoded_parameters': 'decodedParameters', # noqa: E501
+ 'enable_caching': 'enableCaching', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
+ 'url': 'url', # noqa: E501
+ 'username': 'username', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, schema, type, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceOutAttributes - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ schema (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,)
+ cache_path ([str]): [optional] # noqa: E501
+ decoded_parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
+ username (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.name = name
+ self.schema = schema
+ 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, name, schema, type, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceOutAttributes - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ schema (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,)
+ cache_path ([str]): [optional] # noqa: E501
+ decoded_parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
+ username (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.name = name
+ self.schema = schema
+ 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_data_source_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_document.py
new file mode 100644
index 000000000..cff60d6c7
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_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_data_source_out import JsonApiDataSourceOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiDataSourceOut'] = JsonApiDataSourceOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiDataSourceOutDocument(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': (JsonApiDataSourceOut,), # 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
+ """JsonApiDataSourceOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourceOut):
+
+ 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
+ """JsonApiDataSourceOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourceOut):
+
+ 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_data_source_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_list.py
new file mode 100644
index 000000000..e731e1054
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_data_source_out_with_links import JsonApiDataSourceOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiDataSourceOutWithLinks'] = JsonApiDataSourceOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiDataSourceOutList(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': ([JsonApiDataSourceOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiDataSourceOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDataSourceOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiDataSourceOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDataSourceOutWithLinks]):
+
+ 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
+ """
+
+ _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_data_source_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_with_links.py
new file mode 100644
index 000000000..26cd07105
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_data_source_identifier_out_meta import JsonApiDataSourceIdentifierOutMeta
+ from gooddata_api_client.model.json_api_data_source_out import JsonApiDataSourceOut
+ from gooddata_api_client.model.json_api_data_source_out_attributes import JsonApiDataSourceOutAttributes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiDataSourceIdentifierOutMeta'] = JsonApiDataSourceIdentifierOutMeta
+ globals()['JsonApiDataSourceOut'] = JsonApiDataSourceOut
+ globals()['JsonApiDataSourceOutAttributes'] = JsonApiDataSourceOutAttributes
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiDataSourceOutWithLinks(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',): {
+ 'DATASOURCE': "dataSource",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiDataSourceOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'meta': (JsonApiDataSourceIdentifierOutMeta,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'meta': 'meta', # 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
+ """JsonApiDataSourceOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiDataSourceOutAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dataSource", must be one of ["dataSource", ] # 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,)
+ meta (JsonApiDataSourceIdentifierOutMeta): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSource")
+ _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
+ """JsonApiDataSourceOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiDataSourceOutAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dataSource", must be one of ["dataSource", ] # 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,)
+ meta (JsonApiDataSourceIdentifierOutMeta): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSource")
+ _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': [
+ JsonApiDataSourceOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch.py
new file mode 100644
index 000000000..4798f0c9f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_data_source_patch_attributes import JsonApiDataSourcePatchAttributes
+ globals()['JsonApiDataSourcePatchAttributes'] = JsonApiDataSourcePatchAttributes
+
+
+class JsonApiDataSourcePatch(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',): {
+ 'DATASOURCE': "dataSource",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiDataSourcePatchAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourcePatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourcePatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSource", must be one of ["dataSource", ] # 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', "dataSource")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourcePatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourcePatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSource", must be one of ["dataSource", ] # 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', "dataSource")
+ _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.attributes = attributes
+ 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_data_source_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py
new file mode 100644
index 000000000..dbe2ec655
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_attributes.py
@@ -0,0 +1,318 @@
+"""
+ 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_data_source_in_attributes_parameters_inner import JsonApiDataSourceInAttributesParametersInner
+ globals()['JsonApiDataSourceInAttributesParametersInner'] = JsonApiDataSourceInAttributesParametersInner
+
+
+class JsonApiDataSourcePatchAttributes(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',): {
+ 'POSTGRESQL': "POSTGRESQL",
+ 'REDSHIFT': "REDSHIFT",
+ 'VERTICA': "VERTICA",
+ 'SNOWFLAKE': "SNOWFLAKE",
+ 'ADS': "ADS",
+ 'BIGQUERY': "BIGQUERY",
+ 'MSSQL': "MSSQL",
+ 'PRESTO': "PRESTO",
+ 'DREMIO': "DREMIO",
+ 'DRILL': "DRILL",
+ },
+ }
+
+ 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 {
+ 'cache_path': ([str],), # noqa: E501
+ 'enable_caching': (bool,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'parameters': ([JsonApiDataSourceInAttributesParametersInner],), # noqa: E501
+ 'password': (str,), # noqa: E501
+ 'schema': (str,), # noqa: E501
+ 'token': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'url': (str,), # noqa: E501
+ 'username': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'cache_path': 'cachePath', # noqa: E501
+ 'enable_caching': 'enableCaching', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
+ 'password': 'password', # noqa: E501
+ 'schema': 'schema', # noqa: E501
+ 'token': 'token', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'url': 'url', # noqa: E501
+ 'username': 'username', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourcePatchAttributes - 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,)
+ cache_path ([str]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ password (str): [optional] # noqa: E501
+ schema (str): [optional] # noqa: E501
+ token (str): [optional] # noqa: E501
+ type (str): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
+ username (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourcePatchAttributes - 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,)
+ cache_path ([str]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ password (str): [optional] # noqa: E501
+ schema (str): [optional] # noqa: E501
+ token (str): [optional] # noqa: E501
+ type (str): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
+ username (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_document.py
new file mode 100644
index 000000000..5655ec187
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_patch_document.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_data_source_patch import JsonApiDataSourcePatch
+ globals()['JsonApiDataSourcePatch'] = JsonApiDataSourcePatch
+
+
+class JsonApiDataSourcePatchDocument(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': (JsonApiDataSourcePatch,), # 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
+ """JsonApiDataSourcePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourcePatch):
+
+ 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
+ """JsonApiDataSourcePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourcePatch):
+
+ 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_data_source_table_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out.py
new file mode 100644
index 000000000..70d99d718
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_data_source_table_out_attributes import JsonApiDataSourceTableOutAttributes
+ globals()['JsonApiDataSourceTableOutAttributes'] = JsonApiDataSourceTableOutAttributes
+
+
+class JsonApiDataSourceTableOut(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',): {
+ 'DATASOURCETABLE': "dataSourceTable",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiDataSourceTableOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceTableOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourceTableOutAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSourceTable", must be one of ["dataSourceTable", ] # 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', "dataSourceTable")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceTableOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDataSourceTableOutAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataSourceTable", must be one of ["dataSourceTable", ] # 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', "dataSourceTable")
+ _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.attributes = attributes
+ 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_data_source_table_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out_attributes.py
new file mode 100644
index 000000000..c78ca4129
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out_attributes.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_data_source_table_out_attributes_columns_inner import JsonApiDataSourceTableOutAttributesColumnsInner
+ globals()['JsonApiDataSourceTableOutAttributesColumnsInner'] = JsonApiDataSourceTableOutAttributesColumnsInner
+
+
+class JsonApiDataSourceTableOutAttributes(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',): {
+ 'TABLE': "TABLE",
+ 'VIEW': "VIEW",
+ },
+ }
+
+ 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 {
+ 'columns': ([JsonApiDataSourceTableOutAttributesColumnsInner],), # noqa: E501
+ 'name_prefix': (str,), # noqa: E501
+ 'path': ([str],), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'columns': 'columns', # noqa: E501
+ 'name_prefix': 'namePrefix', # noqa: E501
+ 'path': 'path', # noqa: E501
+ 'type': 'type', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, columns, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceTableOutAttributes - a model defined in OpenAPI
+
+ Args:
+ columns ([JsonApiDataSourceTableOutAttributesColumnsInner]):
+
+ 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,)
+ name_prefix (str): [optional] # noqa: E501
+ path ([str]): Path to table.. [optional] # noqa: E501
+ type (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.columns = columns
+ 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, columns, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceTableOutAttributes - a model defined in OpenAPI
+
+ Args:
+ columns ([JsonApiDataSourceTableOutAttributesColumnsInner]):
+
+ 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,)
+ name_prefix (str): [optional] # noqa: E501
+ path ([str]): Path to table.. [optional] # noqa: E501
+ type (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.columns = columns
+ 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_data_source_table_out_attributes_columns_inner.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out_attributes_columns_inner.py
new file mode 100644
index 000000000..25d364cc7
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out_attributes_columns_inner.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 JsonApiDataSourceTableOutAttributesColumnsInner(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 = {
+ ('data_type',): {
+ 'INT': "INT",
+ 'STRING': "STRING",
+ 'DATE': "DATE",
+ 'NUMERIC': "NUMERIC",
+ 'TIMESTAMP': "TIMESTAMP",
+ 'TIMESTAMP_TZ': "TIMESTAMP_TZ",
+ 'BOOLEAN': "BOOLEAN",
+ },
+ }
+
+ 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 {
+ 'data_type': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'is_primary_key': (bool,), # noqa: E501
+ 'referenced_table_column': (str,), # noqa: E501
+ 'referenced_table_id': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data_type': 'dataType', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'is_primary_key': 'isPrimaryKey', # noqa: E501
+ 'referenced_table_column': 'referencedTableColumn', # noqa: E501
+ 'referenced_table_id': 'referencedTableId', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, data_type, name, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceTableOutAttributesColumnsInner - a model defined in OpenAPI
+
+ Args:
+ data_type (str):
+ name (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,)
+ is_primary_key (bool): [optional] # noqa: E501
+ referenced_table_column (str): [optional] # noqa: E501
+ referenced_table_id (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data_type = data_type
+ self.name = name
+ 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_type, name, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceTableOutAttributesColumnsInner - a model defined in OpenAPI
+
+ Args:
+ data_type (str):
+ name (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,)
+ is_primary_key (bool): [optional] # noqa: E501
+ referenced_table_column (str): [optional] # noqa: E501
+ referenced_table_id (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.data_type = data_type
+ self.name = name
+ 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_data_source_table_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out_document.py
new file mode 100644
index 000000000..e31c333a9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_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_data_source_table_out import JsonApiDataSourceTableOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiDataSourceTableOut'] = JsonApiDataSourceTableOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiDataSourceTableOutDocument(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': (JsonApiDataSourceTableOut,), # 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
+ """JsonApiDataSourceTableOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourceTableOut):
+
+ 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
+ """JsonApiDataSourceTableOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDataSourceTableOut):
+
+ 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_data_source_table_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out_list.py
new file mode 100644
index 000000000..d07213e87
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_data_source_table_out_with_links import JsonApiDataSourceTableOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiDataSourceTableOutWithLinks'] = JsonApiDataSourceTableOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiDataSourceTableOutList(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': ([JsonApiDataSourceTableOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiDataSourceTableOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDataSourceTableOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiDataSourceTableOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDataSourceTableOutWithLinks]):
+
+ 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
+ """
+
+ _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_data_source_table_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_out_with_links.py
new file mode 100644
index 000000000..50eb3f0dc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_data_source_table_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_data_source_table_out import JsonApiDataSourceTableOut
+ from gooddata_api_client.model.json_api_data_source_table_out_attributes import JsonApiDataSourceTableOutAttributes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiDataSourceTableOut'] = JsonApiDataSourceTableOut
+ globals()['JsonApiDataSourceTableOutAttributes'] = JsonApiDataSourceTableOutAttributes
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiDataSourceTableOutWithLinks(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',): {
+ 'DATASOURCETABLE': "dataSourceTable",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiDataSourceTableOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # 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
+ """JsonApiDataSourceTableOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiDataSourceTableOutAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dataSourceTable", must be one of ["dataSourceTable", ] # 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,)
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSourceTable")
+ _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
+ """JsonApiDataSourceTableOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiDataSourceTableOutAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dataSourceTable", must be one of ["dataSourceTable", ] # 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,)
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataSourceTable")
+ _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': [
+ JsonApiDataSourceTableOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_linkage.py
new file mode 100644
index 000000000..097dd3b5b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_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 JsonApiDatasetLinkage(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',): {
+ 'DATASET': "dataset",
+ },
+ }
+
+ 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
+ """JsonApiDatasetLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "dataset", must be one of ["dataset", ] # 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', "dataset")
+ _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
+ """JsonApiDatasetLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "dataset", must be one of ["dataset", ] # 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', "dataset")
+ _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_dataset_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out.py
new file mode 100644
index 000000000..c16c937de
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out.py
@@ -0,0 +1,304 @@
+"""
+ 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_dataset_out_attributes import JsonApiDatasetOutAttributes
+ from gooddata_api_client.model.json_api_dataset_out_relationships import JsonApiDatasetOutRelationships
+ globals()['JsonApiDatasetOutAttributes'] = JsonApiDatasetOutAttributes
+ globals()['JsonApiDatasetOutRelationships'] = JsonApiDatasetOutRelationships
+
+
+class JsonApiDatasetOut(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',): {
+ 'DATASET': "dataset",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'attributes': (JsonApiDatasetOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'relationships': (JsonApiDatasetOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDatasetOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDatasetOutAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataset", must be one of ["dataset", ] # 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,)
+ relationships (JsonApiDatasetOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataset")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiDatasetOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiDatasetOutAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "dataset", must be one of ["dataset", ] # 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,)
+ relationships (JsonApiDatasetOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataset")
+ _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.attributes = attributes
+ 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_dataset_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes.py
new file mode 100644
index 000000000..b5060a71b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes.py
@@ -0,0 +1,310 @@
+"""
+ 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_dataset_out_attributes_grain_inner import JsonApiDatasetOutAttributesGrainInner
+ from gooddata_api_client.model.json_api_dataset_out_attributes_reference_properties_inner import JsonApiDatasetOutAttributesReferencePropertiesInner
+ globals()['JsonApiDatasetOutAttributesGrainInner'] = JsonApiDatasetOutAttributesGrainInner
+ globals()['JsonApiDatasetOutAttributesReferencePropertiesInner'] = JsonApiDatasetOutAttributesReferencePropertiesInner
+
+
+class JsonApiDatasetOutAttributes(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',): {
+ 'NORMAL': "NORMAL",
+ 'DATE': "DATE",
+ },
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'type': (str,), # noqa: E501
+ 'are_relations_valid': (bool,), # noqa: E501
+ 'data_source_table_id': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'grain': ([JsonApiDatasetOutAttributesGrainInner],), # noqa: E501
+ 'reference_properties': ([JsonApiDatasetOutAttributesReferencePropertiesInner],), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'type': 'type', # noqa: E501
+ 'are_relations_valid': 'areRelationsValid', # noqa: E501
+ 'data_source_table_id': 'dataSourceTableId', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'grain': 'grain', # noqa: E501
+ 'reference_properties': 'referenceProperties', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, type, *args, **kwargs): # noqa: E501
+ """JsonApiDatasetOutAttributes - a model defined in OpenAPI
+
+ Args:
+ type (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ data_source_table_id (str): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ grain ([JsonApiDatasetOutAttributesGrainInner]): [optional] # noqa: E501
+ reference_properties ([JsonApiDatasetOutAttributesReferencePropertiesInner]): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.type = type
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, type, *args, **kwargs): # noqa: E501
+ """JsonApiDatasetOutAttributes - a model defined in OpenAPI
+
+ Args:
+ type (str):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ data_source_table_id (str): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ grain ([JsonApiDatasetOutAttributesGrainInner]): [optional] # noqa: E501
+ reference_properties ([JsonApiDatasetOutAttributesReferencePropertiesInner]): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.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_dataset_out_attributes_grain_inner.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes_grain_inner.py
new file mode 100644
index 000000000..74a8883e9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes_grain_inner.py
@@ -0,0 +1,280 @@
+"""
+ 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 JsonApiDatasetOutAttributesGrainInner(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',): {
+ 'ATTRIBUTE': "attribute",
+ 'DATASET': "dataset",
+ },
+ }
+
+ 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
+ """JsonApiDatasetOutAttributesGrainInner - 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
+ """JsonApiDatasetOutAttributesGrainInner - 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/json_api_dataset_out_attributes_reference_properties_inner.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes_reference_properties_inner.py
new file mode 100644
index 000000000..e553c56c9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_attributes_reference_properties_inner.py
@@ -0,0 +1,288 @@
+"""
+ 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.dataset_reference_identifier import DatasetReferenceIdentifier
+ globals()['DatasetReferenceIdentifier'] = DatasetReferenceIdentifier
+
+
+class JsonApiDatasetOutAttributesReferencePropertiesInner(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 {
+ 'identifier': (DatasetReferenceIdentifier,), # noqa: E501
+ 'multivalue': (bool,), # noqa: E501
+ 'source_columns': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'identifier': 'identifier', # noqa: E501
+ 'multivalue': 'multivalue', # noqa: E501
+ 'source_columns': 'sourceColumns', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, identifier, multivalue, source_columns, *args, **kwargs): # noqa: E501
+ """JsonApiDatasetOutAttributesReferencePropertiesInner - a model defined in OpenAPI
+
+ Args:
+ identifier (DatasetReferenceIdentifier):
+ multivalue (bool):
+ source_columns ([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.identifier = identifier
+ self.multivalue = multivalue
+ self.source_columns = source_columns
+ 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, identifier, multivalue, source_columns, *args, **kwargs): # noqa: E501
+ """JsonApiDatasetOutAttributesReferencePropertiesInner - a model defined in OpenAPI
+
+ Args:
+ identifier (DatasetReferenceIdentifier):
+ multivalue (bool):
+ source_columns ([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.identifier = identifier
+ self.multivalue = multivalue
+ self.source_columns = source_columns
+ 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_dataset_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_document.py
new file mode 100644
index 000000000..9b9a606c5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_document.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_dataset_out import JsonApiDatasetOut
+ from gooddata_api_client.model.json_api_dataset_out_includes import JsonApiDatasetOutIncludes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiDatasetOut'] = JsonApiDatasetOut
+ globals()['JsonApiDatasetOutIncludes'] = JsonApiDatasetOutIncludes
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiDatasetOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiDatasetOut,), # noqa: E501
+ 'included': ([JsonApiDatasetOutIncludes],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiDatasetOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDatasetOut):
+
+ 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,)
+ included ([JsonApiDatasetOutIncludes]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiDatasetOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiDatasetOut):
+
+ 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,)
+ included ([JsonApiDatasetOutIncludes]): Included resources. [optional] # noqa: E501
+ 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_dataset_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_includes.py
new file mode 100644
index 000000000..de69f93c1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_includes.py
@@ -0,0 +1,356 @@
+"""
+ 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_out_with_links import JsonApiAttributeOutWithLinks
+ from gooddata_api_client.model.json_api_dataset_out_attributes import JsonApiDatasetOutAttributes
+ from gooddata_api_client.model.json_api_dataset_out_relationships import JsonApiDatasetOutRelationships
+ from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks
+ from gooddata_api_client.model.json_api_fact_out_with_links import JsonApiFactOutWithLinks
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiAttributeOutWithLinks'] = JsonApiAttributeOutWithLinks
+ globals()['JsonApiDatasetOutAttributes'] = JsonApiDatasetOutAttributes
+ globals()['JsonApiDatasetOutRelationships'] = JsonApiDatasetOutRelationships
+ globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks
+ globals()['JsonApiFactOutWithLinks'] = JsonApiFactOutWithLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiDatasetOutIncludes(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',): {
+ 'DATASET': "dataset",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'relationships': (JsonApiDatasetOutRelationships,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ 'attributes': (JsonApiDatasetOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ '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
+ """JsonApiDatasetOutIncludes - 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,)
+ relationships (JsonApiDatasetOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiDatasetOutAttributes): [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 "dataset" # 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
+ """JsonApiDatasetOutIncludes - 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,)
+ relationships (JsonApiDatasetOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiDatasetOutAttributes): [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 "dataset" # 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': [
+ JsonApiAttributeOutWithLinks,
+ JsonApiDatasetOutWithLinks,
+ JsonApiFactOutWithLinks,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_list.py
new file mode 100644
index 000000000..2725c2d21
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_dataset_out_includes import JsonApiDatasetOutIncludes
+ from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiDatasetOutIncludes'] = JsonApiDatasetOutIncludes
+ globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiDatasetOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiDatasetOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiDatasetOutIncludes],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiDatasetOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDatasetOutWithLinks]):
+
+ 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,)
+ included ([JsonApiDatasetOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiDatasetOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiDatasetOutWithLinks]):
+
+ 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,)
+ included ([JsonApiDatasetOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_dataset_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships.py
new file mode 100644
index 000000000..c113e8435
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships.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_analytical_dashboard_out_relationships_datasets import JsonApiAnalyticalDashboardOutRelationshipsDatasets
+ from gooddata_api_client.model.json_api_dataset_out_relationships_attributes import JsonApiDatasetOutRelationshipsAttributes
+ from gooddata_api_client.model.json_api_dataset_out_relationships_facts import JsonApiDatasetOutRelationshipsFacts
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsDatasets'] = JsonApiAnalyticalDashboardOutRelationshipsDatasets
+ globals()['JsonApiDatasetOutRelationshipsAttributes'] = JsonApiDatasetOutRelationshipsAttributes
+ globals()['JsonApiDatasetOutRelationshipsFacts'] = JsonApiDatasetOutRelationshipsFacts
+
+
+class JsonApiDatasetOutRelationships(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 {
+ 'attributes': (JsonApiDatasetOutRelationshipsAttributes,), # noqa: E501
+ 'facts': (JsonApiDatasetOutRelationshipsFacts,), # noqa: E501
+ 'references': (JsonApiAnalyticalDashboardOutRelationshipsDatasets,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'facts': 'facts', # noqa: E501
+ 'references': 'references', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiDatasetOutRelationships - 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,)
+ attributes (JsonApiDatasetOutRelationshipsAttributes): [optional] # noqa: E501
+ facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501
+ references (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [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
+ """JsonApiDatasetOutRelationships - 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,)
+ attributes (JsonApiDatasetOutRelationshipsAttributes): [optional] # noqa: E501
+ facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501
+ references (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [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_dataset_out_relationships_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships_attributes.py
new file mode 100644
index 000000000..c5e2c15bd
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships_attributes.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_attribute_to_many_linkage import JsonApiAttributeToManyLinkage
+ globals()['JsonApiAttributeToManyLinkage'] = JsonApiAttributeToManyLinkage
+
+
+class JsonApiDatasetOutRelationshipsAttributes(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': (JsonApiAttributeToManyLinkage,), # 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
+ """JsonApiDatasetOutRelationshipsAttributes - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAttributeToManyLinkage):
+
+ 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
+ """JsonApiDatasetOutRelationshipsAttributes - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAttributeToManyLinkage):
+
+ 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_dataset_out_relationships_facts.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships_facts.py
new file mode 100644
index 000000000..43b39cda2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_relationships_facts.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_many_linkage import JsonApiFactToManyLinkage
+ globals()['JsonApiFactToManyLinkage'] = JsonApiFactToManyLinkage
+
+
+class JsonApiDatasetOutRelationshipsFacts(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': (JsonApiFactToManyLinkage,), # 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
+ """JsonApiDatasetOutRelationshipsFacts - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFactToManyLinkage):
+
+ 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
+ """JsonApiDatasetOutRelationshipsFacts - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFactToManyLinkage):
+
+ 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_dataset_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_with_links.py
new file mode 100644
index 000000000..491d97c99
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_dataset_out import JsonApiDatasetOut
+ from gooddata_api_client.model.json_api_dataset_out_attributes import JsonApiDatasetOutAttributes
+ from gooddata_api_client.model.json_api_dataset_out_relationships import JsonApiDatasetOutRelationships
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiDatasetOut'] = JsonApiDatasetOut
+ globals()['JsonApiDatasetOutAttributes'] = JsonApiDatasetOutAttributes
+ globals()['JsonApiDatasetOutRelationships'] = JsonApiDatasetOutRelationships
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiDatasetOutWithLinks(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',): {
+ 'DATASET': "dataset",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'attributes': (JsonApiDatasetOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'relationships': (JsonApiDatasetOutRelationships,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'relationships': 'relationships', # 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
+ """JsonApiDatasetOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiDatasetOutAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dataset", must be one of ["dataset", ] # 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,)
+ relationships (JsonApiDatasetOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataset")
+ _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
+ """JsonApiDatasetOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiDatasetOutAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "dataset", must be one of ["dataset", ] # 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,)
+ relationships (JsonApiDatasetOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "dataset")
+ _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': [
+ JsonApiDatasetOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_to_many_linkage.py
new file mode 100644
index 000000000..f228efdf0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_dataset_linkage import JsonApiDatasetLinkage
+ globals()['JsonApiDatasetLinkage'] = JsonApiDatasetLinkage
+
+
+class JsonApiDatasetToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiDatasetLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiDatasetToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiDatasetLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiDatasetLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiDatasetToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiDatasetLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiDatasetLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_dataset_to_one_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_to_one_linkage.py
new file mode 100644
index 000000000..bee37aeae
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_dataset_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_dataset_linkage import JsonApiDatasetLinkage
+ globals()['JsonApiDatasetLinkage'] = JsonApiDatasetLinkage
+
+
+class JsonApiDatasetToOneLinkage(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',): {
+ 'DATASET': "dataset",
+ },
+ }
+
+ 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
+ """JsonApiDatasetToOneLinkage - 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 "dataset" # 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
+ """JsonApiDatasetToOneLinkage - 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 "dataset" # 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': [
+ JsonApiDatasetLinkage,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_out.py
new file mode 100644
index 000000000..d03663ffc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_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_entitlement_out_attributes import JsonApiEntitlementOutAttributes
+ globals()['JsonApiEntitlementOutAttributes'] = JsonApiEntitlementOutAttributes
+
+
+class JsonApiEntitlementOut(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',): {
+ 'ENTITLEMENT': "entitlement",
+ },
+ }
+
+ 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': (JsonApiEntitlementOutAttributes,), # 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
+ """JsonApiEntitlementOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "entitlement", must be one of ["entitlement", ] # 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 (JsonApiEntitlementOutAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "entitlement")
+ _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
+ """JsonApiEntitlementOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "entitlement", must be one of ["entitlement", ] # 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 (JsonApiEntitlementOutAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "entitlement")
+ _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_entitlement_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_out_attributes.py
new file mode 100644
index 000000000..3b4387173
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_out_attributes.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 JsonApiEntitlementOutAttributes(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 {
+ 'expiry': (date,), # noqa: E501
+ 'value': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'expiry': 'expiry', # noqa: E501
+ 'value': 'value', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiEntitlementOutAttributes - 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,)
+ expiry (date): [optional] # noqa: E501
+ value (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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
+ """JsonApiEntitlementOutAttributes - 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,)
+ expiry (date): [optional] # noqa: E501
+ value (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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_entitlement_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_out_document.py
new file mode 100644
index 000000000..d95f87c8e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_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_entitlement_out import JsonApiEntitlementOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiEntitlementOut'] = JsonApiEntitlementOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiEntitlementOutDocument(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': (JsonApiEntitlementOut,), # 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
+ """JsonApiEntitlementOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiEntitlementOut):
+
+ 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
+ """JsonApiEntitlementOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiEntitlementOut):
+
+ 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_entitlement_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_out_list.py
new file mode 100644
index 000000000..41d270c96
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_entitlement_out_with_links import JsonApiEntitlementOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiEntitlementOutWithLinks'] = JsonApiEntitlementOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiEntitlementOutList(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': ([JsonApiEntitlementOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiEntitlementOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiEntitlementOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiEntitlementOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiEntitlementOutWithLinks]):
+
+ 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
+ """
+
+ _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_entitlement_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_out_with_links.py
new file mode 100644
index 000000000..9ecea8a72
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_entitlement_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_entitlement_out import JsonApiEntitlementOut
+ from gooddata_api_client.model.json_api_entitlement_out_attributes import JsonApiEntitlementOutAttributes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiEntitlementOut'] = JsonApiEntitlementOut
+ globals()['JsonApiEntitlementOutAttributes'] = JsonApiEntitlementOutAttributes
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiEntitlementOutWithLinks(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',): {
+ 'ENTITLEMENT': "entitlement",
+ },
+ }
+
+ 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': (JsonApiEntitlementOutAttributes,), # 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
+ """JsonApiEntitlementOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "entitlement", must be one of ["entitlement", ] # 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 (JsonApiEntitlementOutAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "entitlement")
+ _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
+ """JsonApiEntitlementOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "entitlement", must be one of ["entitlement", ] # 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 (JsonApiEntitlementOutAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "entitlement")
+ _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': [
+ JsonApiEntitlementOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_fact_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_linkage.py
new file mode 100644
index 000000000..b9ce007a2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_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 JsonApiFactLinkage(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 = {
+ }
+
+ @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
+ """JsonApiFactLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): 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
+ """JsonApiFactLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): 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/json_api_fact_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out.py
new file mode 100644
index 000000000..31ef89b86
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_fact_out_attributes import JsonApiFactOutAttributes
+ from gooddata_api_client.model.json_api_fact_out_relationships import JsonApiFactOutRelationships
+ globals()['JsonApiFactOutAttributes'] = JsonApiFactOutAttributes
+ globals()['JsonApiFactOutRelationships'] = JsonApiFactOutRelationships
+
+
+class JsonApiFactOut(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}:)?(?!\.)[.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': (JsonApiFactOutAttributes,), # noqa: E501
+ 'relationships': (JsonApiFactOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiFactOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. 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,)
+ attributes (JsonApiFactOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiFactOutRelationships): [optional] # noqa: E501
+ """
+
+ 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
+ """JsonApiFactOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. 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,)
+ attributes (JsonApiFactOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiFactOutRelationships): [optional] # noqa: E501
+ """
+
+ 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/json_api_fact_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_attributes.py
new file mode 100644
index 000000000..f9039dae6
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_attributes.py
@@ -0,0 +1,280 @@
+"""
+ 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 JsonApiFactOutAttributes(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 {
+ 'are_relations_valid': (bool,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'source_column': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'are_relations_valid': 'areRelationsValid', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'source_column': 'sourceColumn', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiFactOutAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ source_column (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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
+ """JsonApiFactOutAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ source_column (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_document.py
new file mode 100644
index 000000000..f38dcdde7
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_document.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_dataset_out_with_links import JsonApiDatasetOutWithLinks
+ from gooddata_api_client.model.json_api_fact_out import JsonApiFactOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks
+ globals()['JsonApiFactOut'] = JsonApiFactOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiFactOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiFactOut,), # noqa: E501
+ 'included': ([JsonApiDatasetOutWithLinks],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiFactOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFactOut):
+
+ 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,)
+ included ([JsonApiDatasetOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiFactOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFactOut):
+
+ 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,)
+ included ([JsonApiDatasetOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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_fact_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_list.py
new file mode 100644
index 000000000..9b1dbda5f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks
+ from gooddata_api_client.model.json_api_fact_out_with_links import JsonApiFactOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks
+ globals()['JsonApiFactOutWithLinks'] = JsonApiFactOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiFactOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiFactOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiDatasetOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiFactOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiFactOutWithLinks]):
+
+ 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,)
+ included ([JsonApiDatasetOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiFactOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiFactOutWithLinks]):
+
+ 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,)
+ included ([JsonApiDatasetOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_fact_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_relationships.py
new file mode 100644
index 000000000..241b6344c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_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_attribute_out_relationships_dataset import JsonApiAttributeOutRelationshipsDataset
+ globals()['JsonApiAttributeOutRelationshipsDataset'] = JsonApiAttributeOutRelationshipsDataset
+
+
+class JsonApiFactOutRelationships(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 {
+ 'dataset': (JsonApiAttributeOutRelationshipsDataset,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'dataset': 'dataset', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiFactOutRelationships - 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,)
+ dataset (JsonApiAttributeOutRelationshipsDataset): [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
+ """JsonApiFactOutRelationships - 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,)
+ dataset (JsonApiAttributeOutRelationshipsDataset): [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_fact_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_with_links.py
new file mode 100644
index 000000000..8b2b1a739
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_out import JsonApiFactOut
+ 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.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiFactOut'] = JsonApiFactOut
+ globals()['JsonApiFactOutAttributes'] = JsonApiFactOutAttributes
+ globals()['JsonApiFactOutRelationships'] = JsonApiFactOutRelationships
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiFactOutWithLinks(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}:)?(?!\.)[.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': (JsonApiFactOutAttributes,), # noqa: E501
+ 'relationships': (JsonApiFactOutRelationships,), # 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
+ 'relationships': 'relationships', # 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
+ """JsonApiFactOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. 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,)
+ attributes (JsonApiFactOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiFactOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ 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', ())
+
+ 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
+ """JsonApiFactOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. 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,)
+ attributes (JsonApiFactOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiFactOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ 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__,)
+
+ 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': [
+ JsonApiFactOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_fact_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_fact_to_many_linkage.py
new file mode 100644
index 000000000..cca4b3dfc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_fact_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_fact_linkage import JsonApiFactLinkage
+ globals()['JsonApiFactLinkage'] = JsonApiFactLinkage
+
+
+class JsonApiFactToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiFactLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiFactToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiFactLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiFactLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiFactToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiFactLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiFactLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_in.py
new file mode 100644
index 000000000..f7bf556b9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_in.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_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+
+
+class JsonApiFilterContextIn(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',): {
+ 'FILTERCONTEXT': "filterContext",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # 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
+ """JsonApiFilterContextIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "filterContext", must be one of ["filterContext", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "filterContext")
+ _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
+ """JsonApiFilterContextIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "filterContext", must be one of ["filterContext", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "filterContext")
+ _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_filter_context_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_in_document.py
new file mode 100644
index 000000000..aaa3fd1bc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_in_document.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_filter_context_in import JsonApiFilterContextIn
+ globals()['JsonApiFilterContextIn'] = JsonApiFilterContextIn
+
+
+class JsonApiFilterContextInDocument(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': (JsonApiFilterContextIn,), # 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
+ """JsonApiFilterContextInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFilterContextIn):
+
+ 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
+ """JsonApiFilterContextInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFilterContextIn):
+
+ 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_filter_context_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_linkage.py
new file mode 100644
index 000000000..f03982fb6
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_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 JsonApiFilterContextLinkage(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',): {
+ 'FILTERCONTEXT': "filterContext",
+ },
+ }
+
+ 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
+ """JsonApiFilterContextLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "filterContext", must be one of ["filterContext", ] # 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', "filterContext")
+ _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
+ """JsonApiFilterContextLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "filterContext", must be one of ["filterContext", ] # 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', "filterContext")
+ _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_filter_context_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out.py
new file mode 100644
index 000000000..72ea9770d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ from gooddata_api_client.model.json_api_filter_context_out_relationships import JsonApiFilterContextOutRelationships
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiFilterContextOutRelationships'] = JsonApiFilterContextOutRelationships
+
+
+class JsonApiFilterContextOut(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',): {
+ 'FILTERCONTEXT': "filterContext",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # noqa: E501
+ 'relationships': (JsonApiFilterContextOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiFilterContextOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "filterContext", must be one of ["filterContext", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiFilterContextOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "filterContext")
+ _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
+ """JsonApiFilterContextOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "filterContext", must be one of ["filterContext", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiFilterContextOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "filterContext")
+ _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_filter_context_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_document.py
new file mode 100644
index 000000000..38c8e1b3f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_document.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_filter_context_out import JsonApiFilterContextOut
+ from gooddata_api_client.model.json_api_filter_context_out_includes import JsonApiFilterContextOutIncludes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiFilterContextOut'] = JsonApiFilterContextOut
+ globals()['JsonApiFilterContextOutIncludes'] = JsonApiFilterContextOutIncludes
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiFilterContextOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiFilterContextOut,), # noqa: E501
+ 'included': ([JsonApiFilterContextOutIncludes],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiFilterContextOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFilterContextOut):
+
+ 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,)
+ included ([JsonApiFilterContextOutIncludes]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiFilterContextOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFilterContextOut):
+
+ 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,)
+ included ([JsonApiFilterContextOutIncludes]): Included resources. [optional] # noqa: E501
+ 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_filter_context_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_includes.py
new file mode 100644
index 000000000..e2ec1038a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_includes.py
@@ -0,0 +1,356 @@
+"""
+ 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_out_with_links import JsonApiAttributeOutWithLinks
+ from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks
+ from gooddata_api_client.model.json_api_label_out_attributes import JsonApiLabelOutAttributes
+ from gooddata_api_client.model.json_api_label_out_relationships import JsonApiLabelOutRelationships
+ from gooddata_api_client.model.json_api_label_out_with_links import JsonApiLabelOutWithLinks
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiAttributeOutWithLinks'] = JsonApiAttributeOutWithLinks
+ globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks
+ globals()['JsonApiLabelOutAttributes'] = JsonApiLabelOutAttributes
+ globals()['JsonApiLabelOutRelationships'] = JsonApiLabelOutRelationships
+ globals()['JsonApiLabelOutWithLinks'] = JsonApiLabelOutWithLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiFilterContextOutIncludes(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',): {
+ 'LABEL': "label",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'relationships': (JsonApiLabelOutRelationships,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ 'attributes': (JsonApiLabelOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ '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
+ """JsonApiFilterContextOutIncludes - 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,)
+ relationships (JsonApiLabelOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiLabelOutAttributes): [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 "label" # 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
+ """JsonApiFilterContextOutIncludes - 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,)
+ relationships (JsonApiLabelOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiLabelOutAttributes): [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 "label" # 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': [
+ JsonApiAttributeOutWithLinks,
+ JsonApiDatasetOutWithLinks,
+ JsonApiLabelOutWithLinks,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_list.py
new file mode 100644
index 000000000..c816d86e0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_filter_context_out_includes import JsonApiFilterContextOutIncludes
+ from gooddata_api_client.model.json_api_filter_context_out_with_links import JsonApiFilterContextOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiFilterContextOutIncludes'] = JsonApiFilterContextOutIncludes
+ globals()['JsonApiFilterContextOutWithLinks'] = JsonApiFilterContextOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiFilterContextOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiFilterContextOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiFilterContextOutIncludes],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiFilterContextOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiFilterContextOutWithLinks]):
+
+ 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,)
+ included ([JsonApiFilterContextOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiFilterContextOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiFilterContextOutWithLinks]):
+
+ 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,)
+ included ([JsonApiFilterContextOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_filter_context_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_relationships.py
new file mode 100644
index 000000000..fa4849733
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_relationships.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_analytical_dashboard_out_relationships_datasets import JsonApiAnalyticalDashboardOutRelationshipsDatasets
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_labels import JsonApiAnalyticalDashboardOutRelationshipsLabels
+ from gooddata_api_client.model.json_api_dataset_out_relationships_attributes import JsonApiDatasetOutRelationshipsAttributes
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsDatasets'] = JsonApiAnalyticalDashboardOutRelationshipsDatasets
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsLabels'] = JsonApiAnalyticalDashboardOutRelationshipsLabels
+ globals()['JsonApiDatasetOutRelationshipsAttributes'] = JsonApiDatasetOutRelationshipsAttributes
+
+
+class JsonApiFilterContextOutRelationships(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 {
+ 'attributes': (JsonApiDatasetOutRelationshipsAttributes,), # noqa: E501
+ 'datasets': (JsonApiAnalyticalDashboardOutRelationshipsDatasets,), # noqa: E501
+ 'labels': (JsonApiAnalyticalDashboardOutRelationshipsLabels,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'datasets': 'datasets', # noqa: E501
+ 'labels': 'labels', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiFilterContextOutRelationships - 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,)
+ attributes (JsonApiDatasetOutRelationshipsAttributes): [optional] # noqa: E501
+ datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501
+ labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [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
+ """JsonApiFilterContextOutRelationships - 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,)
+ attributes (JsonApiDatasetOutRelationshipsAttributes): [optional] # noqa: E501
+ datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501
+ labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [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_filter_context_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_with_links.py
new file mode 100644
index 000000000..b6ae84fe8
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ from gooddata_api_client.model.json_api_filter_context_out import JsonApiFilterContextOut
+ from gooddata_api_client.model.json_api_filter_context_out_relationships import JsonApiFilterContextOutRelationships
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiFilterContextOut'] = JsonApiFilterContextOut
+ globals()['JsonApiFilterContextOutRelationships'] = JsonApiFilterContextOutRelationships
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiFilterContextOutWithLinks(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',): {
+ 'FILTERCONTEXT': "filterContext",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # noqa: E501
+ 'relationships': (JsonApiFilterContextOutRelationships,), # 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
+ 'relationships': 'relationships', # 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
+ """JsonApiFilterContextOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "filterContext", must be one of ["filterContext", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiFilterContextOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "filterContext")
+ _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
+ """JsonApiFilterContextOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "filterContext", must be one of ["filterContext", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiFilterContextOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "filterContext")
+ _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': [
+ JsonApiFilterContextOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_patch.py
new file mode 100644
index 000000000..14b991018
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_patch.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_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+
+
+class JsonApiFilterContextPatch(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',): {
+ 'FILTERCONTEXT': "filterContext",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # 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
+ """JsonApiFilterContextPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "filterContext", must be one of ["filterContext", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "filterContext")
+ _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
+ """JsonApiFilterContextPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "filterContext", must be one of ["filterContext", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "filterContext")
+ _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_filter_context_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_patch_document.py
new file mode 100644
index 000000000..a55c24b4f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_patch_document.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_filter_context_patch import JsonApiFilterContextPatch
+ globals()['JsonApiFilterContextPatch'] = JsonApiFilterContextPatch
+
+
+class JsonApiFilterContextPatchDocument(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': (JsonApiFilterContextPatch,), # 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
+ """JsonApiFilterContextPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFilterContextPatch):
+
+ 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
+ """JsonApiFilterContextPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiFilterContextPatch):
+
+ 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_filter_context_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_to_many_linkage.py
new file mode 100644
index 000000000..b5abf59da
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_filter_context_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_filter_context_linkage import JsonApiFilterContextLinkage
+ globals()['JsonApiFilterContextLinkage'] = JsonApiFilterContextLinkage
+
+
+class JsonApiFilterContextToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiFilterContextLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiFilterContextToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiFilterContextLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiFilterContextLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiFilterContextToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiFilterContextLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiFilterContextLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_label_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_linkage.py
new file mode 100644
index 000000000..8aabd522b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_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 JsonApiLabelLinkage(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',): {
+ 'LABEL': "label",
+ },
+ }
+
+ 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
+ """JsonApiLabelLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "label", must be one of ["label", ] # 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', "label")
+ _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
+ """JsonApiLabelLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "label", must be one of ["label", ] # 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', "label")
+ _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_label_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_out.py
new file mode 100644
index 000000000..ea6a57a92
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_out.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_label_out_attributes import JsonApiLabelOutAttributes
+ from gooddata_api_client.model.json_api_label_out_relationships import JsonApiLabelOutRelationships
+ globals()['JsonApiLabelOutAttributes'] = JsonApiLabelOutAttributes
+ globals()['JsonApiLabelOutRelationships'] = JsonApiLabelOutRelationships
+
+
+class JsonApiLabelOut(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',): {
+ 'LABEL': "label",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiLabelOutAttributes,), # noqa: E501
+ 'relationships': (JsonApiLabelOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiLabelOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "label", must be one of ["label", ] # 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 (JsonApiLabelOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiLabelOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "label")
+ _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
+ """JsonApiLabelOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "label", must be one of ["label", ] # 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 (JsonApiLabelOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiLabelOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "label")
+ _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_label_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_attributes.py
new file mode 100644
index 000000000..572add4ec
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_attributes.py
@@ -0,0 +1,293 @@
+"""
+ 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 JsonApiLabelOutAttributes(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 = {
+ ('value_type',): {
+ 'TEXT': "TEXT",
+ 'HYPERLINK': "HYPERLINK",
+ 'GEO': "GEO",
+ },
+ }
+
+ 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 {
+ 'are_relations_valid': (bool,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'primary': (bool,), # noqa: E501
+ 'source_column': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'value_type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'are_relations_valid': 'areRelationsValid', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'primary': 'primary', # noqa: E501
+ 'source_column': 'sourceColumn', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'value_type': 'valueType', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiLabelOutAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ primary (bool): [optional] # noqa: E501
+ source_column (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ value_type (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """JsonApiLabelOutAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ primary (bool): [optional] # noqa: E501
+ source_column (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ value_type (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_label_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_document.py
new file mode 100644
index 000000000..e944d53aa
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_document.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_attribute_out_with_links import JsonApiAttributeOutWithLinks
+ from gooddata_api_client.model.json_api_label_out import JsonApiLabelOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiAttributeOutWithLinks'] = JsonApiAttributeOutWithLinks
+ globals()['JsonApiLabelOut'] = JsonApiLabelOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiLabelOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiLabelOut,), # noqa: E501
+ 'included': ([JsonApiAttributeOutWithLinks],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiLabelOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiLabelOut):
+
+ 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,)
+ included ([JsonApiAttributeOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiLabelOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiLabelOut):
+
+ 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,)
+ included ([JsonApiAttributeOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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_label_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_list.py
new file mode 100644
index 000000000..62f114282
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_attribute_out_with_links import JsonApiAttributeOutWithLinks
+ from gooddata_api_client.model.json_api_label_out_with_links import JsonApiLabelOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiAttributeOutWithLinks'] = JsonApiAttributeOutWithLinks
+ globals()['JsonApiLabelOutWithLinks'] = JsonApiLabelOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiLabelOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiLabelOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiAttributeOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiLabelOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiLabelOutWithLinks]):
+
+ 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,)
+ included ([JsonApiAttributeOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiLabelOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiLabelOutWithLinks]):
+
+ 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,)
+ included ([JsonApiAttributeOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_label_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_relationships.py
new file mode 100644
index 000000000..624aede73
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_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_label_out_relationships_attribute import JsonApiLabelOutRelationshipsAttribute
+ globals()['JsonApiLabelOutRelationshipsAttribute'] = JsonApiLabelOutRelationshipsAttribute
+
+
+class JsonApiLabelOutRelationships(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 {
+ 'attribute': (JsonApiLabelOutRelationshipsAttribute,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attribute': 'attribute', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiLabelOutRelationships - 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,)
+ attribute (JsonApiLabelOutRelationshipsAttribute): [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
+ """JsonApiLabelOutRelationships - 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,)
+ attribute (JsonApiLabelOutRelationshipsAttribute): [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_label_out_relationships_attribute.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_relationships_attribute.py
new file mode 100644
index 000000000..22290f3bb
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_relationships_attribute.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_attribute_to_one_linkage import JsonApiAttributeToOneLinkage
+ globals()['JsonApiAttributeToOneLinkage'] = JsonApiAttributeToOneLinkage
+
+
+class JsonApiLabelOutRelationshipsAttribute(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': (JsonApiAttributeToOneLinkage,), # 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
+ """JsonApiLabelOutRelationshipsAttribute - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAttributeToOneLinkage):
+
+ 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
+ """JsonApiLabelOutRelationshipsAttribute - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiAttributeToOneLinkage):
+
+ 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_label_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_with_links.py
new file mode 100644
index 000000000..a67d92e30
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_label_out import JsonApiLabelOut
+ from gooddata_api_client.model.json_api_label_out_attributes import JsonApiLabelOutAttributes
+ from gooddata_api_client.model.json_api_label_out_relationships import JsonApiLabelOutRelationships
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiLabelOut'] = JsonApiLabelOut
+ globals()['JsonApiLabelOutAttributes'] = JsonApiLabelOutAttributes
+ globals()['JsonApiLabelOutRelationships'] = JsonApiLabelOutRelationships
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiLabelOutWithLinks(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',): {
+ 'LABEL': "label",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiLabelOutAttributes,), # noqa: E501
+ 'relationships': (JsonApiLabelOutRelationships,), # 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
+ 'relationships': 'relationships', # 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
+ """JsonApiLabelOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "label", must be one of ["label", ] # 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 (JsonApiLabelOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiLabelOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "label")
+ _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
+ """JsonApiLabelOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "label", must be one of ["label", ] # 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 (JsonApiLabelOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiLabelOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "label")
+ _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': [
+ JsonApiLabelOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_label_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_to_many_linkage.py
new file mode 100644
index 000000000..7fd000aec
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_label_linkage import JsonApiLabelLinkage
+ globals()['JsonApiLabelLinkage'] = JsonApiLabelLinkage
+
+
+class JsonApiLabelToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiLabelLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiLabelToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiLabelLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiLabelLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiLabelToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiLabelLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiLabelLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_label_to_one_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_label_to_one_linkage.py
new file mode 100644
index 000000000..37f210462
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_label_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_label_linkage import JsonApiLabelLinkage
+ globals()['JsonApiLabelLinkage'] = JsonApiLabelLinkage
+
+
+class JsonApiLabelToOneLinkage(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',): {
+ 'LABEL': "label",
+ },
+ }
+
+ 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
+ """JsonApiLabelToOneLinkage - 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 "label" # 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
+ """JsonApiLabelToOneLinkage - 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 "label" # 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': [
+ JsonApiLabelLinkage,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in.py
new file mode 100644
index 000000000..c3ff7b12d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_metric_in_attributes import JsonApiMetricInAttributes
+ globals()['JsonApiMetricInAttributes'] = JsonApiMetricInAttributes
+
+
+class JsonApiMetricIn(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',): {
+ 'METRIC': "metric",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'attributes': (JsonApiMetricInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiMetricIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiMetricInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "metric", must be one of ["metric", ] # 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', "metric")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiMetricIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiMetricInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "metric", must be one of ["metric", ] # 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', "metric")
+ _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.attributes = attributes
+ 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_metric_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes.py
new file mode 100644
index 000000000..f2214fa4e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_metric_in_attributes_content import JsonApiMetricInAttributesContent
+ globals()['JsonApiMetricInAttributesContent'] = JsonApiMetricInAttributesContent
+
+
+class JsonApiMetricInAttributes(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'content': (JsonApiMetricInAttributesContent,), # noqa: E501
+ 'are_relations_valid': (bool,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ 'are_relations_valid': 'areRelationsValid', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, content, *args, **kwargs): # noqa: E501
+ """JsonApiMetricInAttributes - a model defined in OpenAPI
+
+ Args:
+ content (JsonApiMetricInAttributesContent):
+
+ 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.content = content
+ 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, content, *args, **kwargs): # noqa: E501
+ """JsonApiMetricInAttributes - a model defined in OpenAPI
+
+ Args:
+ content (JsonApiMetricInAttributesContent):
+
+ 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.content = content
+ 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_metric_in_attributes_content.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes_content.py
new file mode 100644
index 000000000..39282977e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_attributes_content.py
@@ -0,0 +1,274 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class JsonApiMetricInAttributesContent(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 {
+ 'maql': (str,), # noqa: E501
+ 'format': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'maql': 'maql', # noqa: E501
+ 'format': 'format', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, maql, *args, **kwargs): # noqa: E501
+ """JsonApiMetricInAttributesContent - a model defined in OpenAPI
+
+ Args:
+ maql (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,)
+ format (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.maql = maql
+ 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, maql, *args, **kwargs): # noqa: E501
+ """JsonApiMetricInAttributesContent - a model defined in OpenAPI
+
+ Args:
+ maql (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,)
+ format (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.maql = maql
+ 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_metric_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_document.py
new file mode 100644
index 000000000..71397fb87
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_in_document.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_metric_in import JsonApiMetricIn
+ globals()['JsonApiMetricIn'] = JsonApiMetricIn
+
+
+class JsonApiMetricInDocument(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': (JsonApiMetricIn,), # 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
+ """JsonApiMetricInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiMetricIn):
+
+ 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
+ """JsonApiMetricInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiMetricIn):
+
+ 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_metric_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_linkage.py
new file mode 100644
index 000000000..460a37ecc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_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 JsonApiMetricLinkage(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',): {
+ 'METRIC': "metric",
+ },
+ }
+
+ 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
+ """JsonApiMetricLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "metric", must be one of ["metric", ] # 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', "metric")
+ _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
+ """JsonApiMetricLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "metric", must be one of ["metric", ] # 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', "metric")
+ _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_metric_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out.py
new file mode 100644
index 000000000..c627b69ab
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out.py
@@ -0,0 +1,304 @@
+"""
+ 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_metric_in_attributes import JsonApiMetricInAttributes
+ from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships
+ globals()['JsonApiMetricInAttributes'] = JsonApiMetricInAttributes
+ globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships
+
+
+class JsonApiMetricOut(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',): {
+ 'METRIC': "metric",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'attributes': (JsonApiMetricInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiMetricOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiMetricInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "metric", must be one of ["metric", ] # 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,)
+ relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "metric")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiMetricOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiMetricInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "metric", must be one of ["metric", ] # 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,)
+ relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "metric")
+ _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.attributes = attributes
+ 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_metric_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_document.py
new file mode 100644
index 000000000..80593a1b9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_document.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_metric_out import JsonApiMetricOut
+ from gooddata_api_client.model.json_api_metric_out_includes import JsonApiMetricOutIncludes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiMetricOut'] = JsonApiMetricOut
+ globals()['JsonApiMetricOutIncludes'] = JsonApiMetricOutIncludes
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiMetricOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiMetricOut,), # noqa: E501
+ 'included': ([JsonApiMetricOutIncludes],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiMetricOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiMetricOut):
+
+ 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,)
+ included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiMetricOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiMetricOut):
+
+ 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,)
+ included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501
+ 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_metric_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_includes.py
new file mode 100644
index 000000000..b27e6b575
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_includes.py
@@ -0,0 +1,362 @@
+"""
+ 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_out_with_links import JsonApiAttributeOutWithLinks
+ from gooddata_api_client.model.json_api_dataset_out_attributes import JsonApiDatasetOutAttributes
+ from gooddata_api_client.model.json_api_dataset_out_relationships import JsonApiDatasetOutRelationships
+ from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks
+ from gooddata_api_client.model.json_api_fact_out_with_links import JsonApiFactOutWithLinks
+ from gooddata_api_client.model.json_api_label_out_with_links import JsonApiLabelOutWithLinks
+ from gooddata_api_client.model.json_api_metric_out_with_links import JsonApiMetricOutWithLinks
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiAttributeOutWithLinks'] = JsonApiAttributeOutWithLinks
+ globals()['JsonApiDatasetOutAttributes'] = JsonApiDatasetOutAttributes
+ globals()['JsonApiDatasetOutRelationships'] = JsonApiDatasetOutRelationships
+ globals()['JsonApiDatasetOutWithLinks'] = JsonApiDatasetOutWithLinks
+ globals()['JsonApiFactOutWithLinks'] = JsonApiFactOutWithLinks
+ globals()['JsonApiLabelOutWithLinks'] = JsonApiLabelOutWithLinks
+ globals()['JsonApiMetricOutWithLinks'] = JsonApiMetricOutWithLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiMetricOutIncludes(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',): {
+ 'DATASET': "dataset",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'relationships': (JsonApiDatasetOutRelationships,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ 'attributes': (JsonApiDatasetOutAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ '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
+ """JsonApiMetricOutIncludes - 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,)
+ relationships (JsonApiDatasetOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiDatasetOutAttributes): [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 "dataset" # 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
+ """JsonApiMetricOutIncludes - 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,)
+ relationships (JsonApiDatasetOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ attributes (JsonApiDatasetOutAttributes): [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 "dataset" # 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': [
+ JsonApiAttributeOutWithLinks,
+ JsonApiDatasetOutWithLinks,
+ JsonApiFactOutWithLinks,
+ JsonApiLabelOutWithLinks,
+ JsonApiMetricOutWithLinks,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_list.py
new file mode 100644
index 000000000..6633dd3f2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_metric_out_includes import JsonApiMetricOutIncludes
+ from gooddata_api_client.model.json_api_metric_out_with_links import JsonApiMetricOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiMetricOutIncludes'] = JsonApiMetricOutIncludes
+ globals()['JsonApiMetricOutWithLinks'] = JsonApiMetricOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiMetricOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiMetricOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiMetricOutIncludes],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiMetricOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiMetricOutWithLinks]):
+
+ 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,)
+ included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiMetricOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiMetricOutWithLinks]):
+
+ 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,)
+ included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_metric_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_relationships.py
new file mode 100644
index 000000000..303a1fa05
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_relationships.py
@@ -0,0 +1,294 @@
+"""
+ 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_relationships_datasets import JsonApiAnalyticalDashboardOutRelationshipsDatasets
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_labels import JsonApiAnalyticalDashboardOutRelationshipsLabels
+ from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_metrics import JsonApiAnalyticalDashboardOutRelationshipsMetrics
+ from gooddata_api_client.model.json_api_dataset_out_relationships_attributes import JsonApiDatasetOutRelationshipsAttributes
+ from gooddata_api_client.model.json_api_dataset_out_relationships_facts import JsonApiDatasetOutRelationshipsFacts
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsDatasets'] = JsonApiAnalyticalDashboardOutRelationshipsDatasets
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsLabels'] = JsonApiAnalyticalDashboardOutRelationshipsLabels
+ globals()['JsonApiAnalyticalDashboardOutRelationshipsMetrics'] = JsonApiAnalyticalDashboardOutRelationshipsMetrics
+ globals()['JsonApiDatasetOutRelationshipsAttributes'] = JsonApiDatasetOutRelationshipsAttributes
+ globals()['JsonApiDatasetOutRelationshipsFacts'] = JsonApiDatasetOutRelationshipsFacts
+
+
+class JsonApiMetricOutRelationships(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 {
+ 'attributes': (JsonApiDatasetOutRelationshipsAttributes,), # noqa: E501
+ 'datasets': (JsonApiAnalyticalDashboardOutRelationshipsDatasets,), # noqa: E501
+ 'facts': (JsonApiDatasetOutRelationshipsFacts,), # noqa: E501
+ 'labels': (JsonApiAnalyticalDashboardOutRelationshipsLabels,), # noqa: E501
+ 'metrics': (JsonApiAnalyticalDashboardOutRelationshipsMetrics,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'datasets': 'datasets', # noqa: E501
+ 'facts': 'facts', # noqa: E501
+ 'labels': 'labels', # noqa: E501
+ 'metrics': 'metrics', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiMetricOutRelationships - 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,)
+ attributes (JsonApiDatasetOutRelationshipsAttributes): [optional] # noqa: E501
+ datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501
+ facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501
+ labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [optional] # noqa: E501
+ metrics (JsonApiAnalyticalDashboardOutRelationshipsMetrics): [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
+ """JsonApiMetricOutRelationships - 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,)
+ attributes (JsonApiDatasetOutRelationshipsAttributes): [optional] # noqa: E501
+ datasets (JsonApiAnalyticalDashboardOutRelationshipsDatasets): [optional] # noqa: E501
+ facts (JsonApiDatasetOutRelationshipsFacts): [optional] # noqa: E501
+ labels (JsonApiAnalyticalDashboardOutRelationshipsLabels): [optional] # noqa: E501
+ metrics (JsonApiAnalyticalDashboardOutRelationshipsMetrics): [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_metric_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_with_links.py
new file mode 100644
index 000000000..48c8b6617
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_metric_in_attributes import JsonApiMetricInAttributes
+ from gooddata_api_client.model.json_api_metric_out import JsonApiMetricOut
+ from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiMetricInAttributes'] = JsonApiMetricInAttributes
+ globals()['JsonApiMetricOut'] = JsonApiMetricOut
+ globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiMetricOutWithLinks(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',): {
+ 'METRIC': "metric",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'attributes': (JsonApiMetricInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'relationships': 'relationships', # 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
+ """JsonApiMetricOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiMetricInAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "metric", must be one of ["metric", ] # 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,)
+ relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "metric")
+ _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
+ """JsonApiMetricOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiMetricInAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "metric", must be one of ["metric", ] # 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,)
+ relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "metric")
+ _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': [
+ JsonApiMetricOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch.py
new file mode 100644
index 000000000..302c653bb
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_metric_patch_attributes import JsonApiMetricPatchAttributes
+ globals()['JsonApiMetricPatchAttributes'] = JsonApiMetricPatchAttributes
+
+
+class JsonApiMetricPatch(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',): {
+ 'METRIC': "metric",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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 {
+ 'attributes': (JsonApiMetricPatchAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiMetricPatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiMetricPatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "metric", must be one of ["metric", ] # 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', "metric")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiMetricPatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiMetricPatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "metric", must be one of ["metric", ] # 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', "metric")
+ _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.attributes = attributes
+ 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_metric_patch_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch_attributes.py
new file mode 100644
index 000000000..a1d8ba3f4
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch_attributes.py
@@ -0,0 +1,286 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_metric_in_attributes_content import JsonApiMetricInAttributesContent
+ globals()['JsonApiMetricInAttributesContent'] = JsonApiMetricInAttributesContent
+
+
+class JsonApiMetricPatchAttributes(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 {
+ 'are_relations_valid': (bool,), # noqa: E501
+ 'content': (JsonApiMetricInAttributesContent,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'tags': ([str],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'are_relations_valid': 'areRelationsValid', # noqa: E501
+ 'content': 'content', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'tags': 'tags', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiMetricPatchAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ content (JsonApiMetricInAttributesContent): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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
+ """JsonApiMetricPatchAttributes - 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,)
+ are_relations_valid (bool): [optional] # noqa: E501
+ content (JsonApiMetricInAttributesContent): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ tags ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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_metric_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch_document.py
new file mode 100644
index 000000000..c21a4d6c8
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_patch_document.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_metric_patch import JsonApiMetricPatch
+ globals()['JsonApiMetricPatch'] = JsonApiMetricPatch
+
+
+class JsonApiMetricPatchDocument(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': (JsonApiMetricPatch,), # 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
+ """JsonApiMetricPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiMetricPatch):
+
+ 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
+ """JsonApiMetricPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiMetricPatch):
+
+ 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_metric_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_metric_to_many_linkage.py
new file mode 100644
index 000000000..6a5e44fc3
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_metric_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_metric_linkage import JsonApiMetricLinkage
+ globals()['JsonApiMetricLinkage'] = JsonApiMetricLinkage
+
+
+class JsonApiMetricToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiMetricLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiMetricToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiMetricLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiMetricLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiMetricToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiMetricLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiMetricLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
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
new file mode 100644
index 000000000..fd3e0689b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in.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_organization_in_attributes import JsonApiOrganizationInAttributes
+ globals()['JsonApiOrganizationInAttributes'] = JsonApiOrganizationInAttributes
+
+
+class JsonApiOrganizationIn(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',): {
+ 'ORGANIZATION': "organization",
+ },
+ }
+
+ 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': (JsonApiOrganizationInAttributes,), # 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
+ """JsonApiOrganizationIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organization", must be one of ["organization", ] # 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 (JsonApiOrganizationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organization")
+ _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
+ """JsonApiOrganizationIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organization", must be one of ["organization", ] # 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 (JsonApiOrganizationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organization")
+ _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_organization_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_attributes.py
new file mode 100644
index 000000000..4da1aaf4b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_attributes.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class JsonApiOrganizationInAttributes(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 {
+ 'allowed_origins': ([str],), # noqa: E501
+ 'early_access': (str,), # noqa: E501
+ 'hostname': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'oauth_client_id': (str,), # noqa: E501
+ 'oauth_client_secret': (str,), # noqa: E501
+ 'oauth_issuer_id': (str,), # noqa: E501
+ 'oauth_issuer_location': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'allowed_origins': 'allowedOrigins', # noqa: E501
+ 'early_access': 'earlyAccess', # noqa: E501
+ 'hostname': 'hostname', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'oauth_client_id': 'oauthClientId', # noqa: E501
+ 'oauth_client_secret': 'oauthClientSecret', # noqa: E501
+ 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501
+ 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiOrganizationInAttributes - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ allowed_origins ([str]): [optional] # noqa: E501
+ early_access (str): [optional] # noqa: E501
+ hostname (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ oauth_client_id (str): [optional] # noqa: E501
+ oauth_client_secret (str): [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): [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
+ """JsonApiOrganizationInAttributes - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ allowed_origins ([str]): [optional] # noqa: E501
+ early_access (str): [optional] # noqa: E501
+ hostname (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ oauth_client_id (str): [optional] # noqa: E501
+ oauth_client_secret (str): [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): [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_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_document.py
new file mode 100644
index 000000000..242606b37
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_in_document.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_organization_in import JsonApiOrganizationIn
+ globals()['JsonApiOrganizationIn'] = JsonApiOrganizationIn
+
+
+class JsonApiOrganizationInDocument(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': (JsonApiOrganizationIn,), # 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
+ """JsonApiOrganizationInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationIn):
+
+ 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
+ """JsonApiOrganizationInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationIn):
+
+ 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.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out.py
new file mode 100644
index 000000000..7b7b29129
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out.py
@@ -0,0 +1,308 @@
+"""
+ 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_out_attributes import JsonApiOrganizationOutAttributes
+ from gooddata_api_client.model.json_api_organization_out_meta import JsonApiOrganizationOutMeta
+ from gooddata_api_client.model.json_api_organization_out_relationships import JsonApiOrganizationOutRelationships
+ globals()['JsonApiOrganizationOutAttributes'] = JsonApiOrganizationOutAttributes
+ globals()['JsonApiOrganizationOutMeta'] = JsonApiOrganizationOutMeta
+ globals()['JsonApiOrganizationOutRelationships'] = JsonApiOrganizationOutRelationships
+
+
+class JsonApiOrganizationOut(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',): {
+ 'ORGANIZATION': "organization",
+ },
+ }
+
+ 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': (JsonApiOrganizationOutAttributes,), # noqa: E501
+ 'meta': (JsonApiOrganizationOutMeta,), # noqa: E501
+ 'relationships': (JsonApiOrganizationOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiOrganizationOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organization", must be one of ["organization", ] # 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 (JsonApiOrganizationOutAttributes): [optional] # noqa: E501
+ meta (JsonApiOrganizationOutMeta): [optional] # noqa: E501
+ relationships (JsonApiOrganizationOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organization")
+ _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
+ """JsonApiOrganizationOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organization", must be one of ["organization", ] # 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 (JsonApiOrganizationOutAttributes): [optional] # noqa: E501
+ meta (JsonApiOrganizationOutMeta): [optional] # noqa: E501
+ relationships (JsonApiOrganizationOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organization")
+ _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_organization_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_attributes.py
new file mode 100644
index 000000000..3806b88b8
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_attributes.py
@@ -0,0 +1,288 @@
+"""
+ 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 JsonApiOrganizationOutAttributes(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 {
+ 'allowed_origins': ([str],), # noqa: E501
+ 'early_access': (str,), # noqa: E501
+ 'hostname': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ 'oauth_client_id': (str,), # noqa: E501
+ 'oauth_issuer_id': (str,), # noqa: E501
+ 'oauth_issuer_location': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'allowed_origins': 'allowedOrigins', # noqa: E501
+ 'early_access': 'earlyAccess', # noqa: E501
+ 'hostname': 'hostname', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'oauth_client_id': 'oauthClientId', # noqa: E501
+ 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501
+ 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiOrganizationOutAttributes - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ allowed_origins ([str]): [optional] # noqa: E501
+ early_access (str): [optional] # noqa: E501
+ hostname (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ oauth_client_id (str): [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): [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
+ """JsonApiOrganizationOutAttributes - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ allowed_origins ([str]): [optional] # noqa: E501
+ early_access (str): [optional] # noqa: E501
+ hostname (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ oauth_client_id (str): [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): [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_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_document.py
new file mode 100644
index 000000000..14d3ebd89
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_document.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_organization_out import JsonApiOrganizationOut
+ from gooddata_api_client.model.json_api_organization_out_includes import JsonApiOrganizationOutIncludes
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiOrganizationOut'] = JsonApiOrganizationOut
+ globals()['JsonApiOrganizationOutIncludes'] = JsonApiOrganizationOutIncludes
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiOrganizationOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiOrganizationOut,), # noqa: E501
+ 'included': ([JsonApiOrganizationOutIncludes],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiOrganizationOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationOut):
+
+ 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,)
+ included ([JsonApiOrganizationOutIncludes]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiOrganizationOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationOut):
+
+ 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,)
+ included ([JsonApiOrganizationOutIncludes]): Included resources. [optional] # noqa: E501
+ 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_organization_out_includes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_includes.py
new file mode 100644
index 000000000..921407e96
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_includes.py
@@ -0,0 +1,353 @@
+"""
+ 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_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_in_attributes import JsonApiUserInAttributes
+ from gooddata_api_client.model.json_api_user_out_with_links import JsonApiUserOutWithLinks
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiUserGroupInRelationships'] = JsonApiUserGroupInRelationships
+ globals()['JsonApiUserGroupOutWithLinks'] = JsonApiUserGroupOutWithLinks
+ globals()['JsonApiUserInAttributes'] = JsonApiUserInAttributes
+ globals()['JsonApiUserOutWithLinks'] = JsonApiUserOutWithLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiOrganizationOutIncludes(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',): {
+ 'USERGROUP': "userGroup",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiUserInAttributes,), # noqa: E501
+ 'relationships': (JsonApiUserGroupInRelationships,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ 'links': 'links', # 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
+ """JsonApiOrganizationOutIncludes - 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,)
+ attributes (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [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
+ """
+
+ _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
+ """JsonApiOrganizationOutIncludes - 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,)
+ attributes (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [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
+ """
+
+ _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': [
+ JsonApiUserGroupOutWithLinks,
+ JsonApiUserOutWithLinks,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_meta.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_meta.py
new file mode 100644
index 000000000..50f20cdac
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_meta.py
@@ -0,0 +1,267 @@
+"""
+ 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 JsonApiOrganizationOutMeta(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 = {
+ ('permissions',): {
+ 'MANAGE': "MANAGE",
+ },
+ }
+
+ 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 {
+ 'permissions': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'permissions': 'permissions', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiOrganizationOutMeta - 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,)
+ permissions ([str]): List of valid permissions for a logged user.. [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
+ """JsonApiOrganizationOutMeta - 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,)
+ permissions ([str]): List of valid permissions for a logged user.. [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_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships.py
new file mode 100644
index 000000000..03b48aa5b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships.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_organization_out_relationships_bootstrap_user import JsonApiOrganizationOutRelationshipsBootstrapUser
+ from gooddata_api_client.model.json_api_organization_out_relationships_bootstrap_user_group import JsonApiOrganizationOutRelationshipsBootstrapUserGroup
+ globals()['JsonApiOrganizationOutRelationshipsBootstrapUser'] = JsonApiOrganizationOutRelationshipsBootstrapUser
+ globals()['JsonApiOrganizationOutRelationshipsBootstrapUserGroup'] = JsonApiOrganizationOutRelationshipsBootstrapUserGroup
+
+
+class JsonApiOrganizationOutRelationships(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 {
+ 'bootstrap_user': (JsonApiOrganizationOutRelationshipsBootstrapUser,), # noqa: E501
+ 'bootstrap_user_group': (JsonApiOrganizationOutRelationshipsBootstrapUserGroup,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'bootstrap_user': 'bootstrapUser', # noqa: E501
+ 'bootstrap_user_group': 'bootstrapUserGroup', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiOrganizationOutRelationships - 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,)
+ bootstrap_user (JsonApiOrganizationOutRelationshipsBootstrapUser): [optional] # noqa: E501
+ bootstrap_user_group (JsonApiOrganizationOutRelationshipsBootstrapUserGroup): [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
+ """JsonApiOrganizationOutRelationships - 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,)
+ bootstrap_user (JsonApiOrganizationOutRelationshipsBootstrapUser): [optional] # noqa: E501
+ bootstrap_user_group (JsonApiOrganizationOutRelationshipsBootstrapUserGroup): [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_out_relationships_bootstrap_user.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships_bootstrap_user.py
new file mode 100644
index 000000000..a2c0fe77b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships_bootstrap_user.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_user_to_one_linkage import JsonApiUserToOneLinkage
+ globals()['JsonApiUserToOneLinkage'] = JsonApiUserToOneLinkage
+
+
+class JsonApiOrganizationOutRelationshipsBootstrapUser(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': (JsonApiUserToOneLinkage,), # 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
+ """JsonApiOrganizationOutRelationshipsBootstrapUser - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserToOneLinkage):
+
+ 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
+ """JsonApiOrganizationOutRelationshipsBootstrapUser - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserToOneLinkage):
+
+ 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_relationships_bootstrap_user_group.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships_bootstrap_user_group.py
new file mode 100644
index 000000000..ea7c60fba
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_relationships_bootstrap_user_group.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_user_group_to_one_linkage import JsonApiUserGroupToOneLinkage
+ globals()['JsonApiUserGroupToOneLinkage'] = JsonApiUserGroupToOneLinkage
+
+
+class JsonApiOrganizationOutRelationshipsBootstrapUserGroup(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': (JsonApiUserGroupToOneLinkage,), # 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
+ """JsonApiOrganizationOutRelationshipsBootstrapUserGroup - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupToOneLinkage):
+
+ 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
+ """JsonApiOrganizationOutRelationshipsBootstrapUserGroup - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupToOneLinkage):
+
+ 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_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_patch.py
new file mode 100644
index 000000000..d7b16a967
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_patch.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_organization_in_attributes import JsonApiOrganizationInAttributes
+ globals()['JsonApiOrganizationInAttributes'] = JsonApiOrganizationInAttributes
+
+
+class JsonApiOrganizationPatch(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',): {
+ 'ORGANIZATION': "organization",
+ },
+ }
+
+ 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': (JsonApiOrganizationInAttributes,), # 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
+ """JsonApiOrganizationPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organization", must be one of ["organization", ] # 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 (JsonApiOrganizationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organization")
+ _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
+ """JsonApiOrganizationPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organization", must be one of ["organization", ] # 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 (JsonApiOrganizationInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organization")
+ _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_organization_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_patch_document.py
new file mode 100644
index 000000000..e0300a230
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_patch_document.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_organization_patch import JsonApiOrganizationPatch
+ globals()['JsonApiOrganizationPatch'] = JsonApiOrganizationPatch
+
+
+class JsonApiOrganizationPatchDocument(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': (JsonApiOrganizationPatch,), # 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
+ """JsonApiOrganizationPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationPatch):
+
+ 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
+ """JsonApiOrganizationPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationPatch):
+
+ 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_setting_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in.py
new file mode 100644
index 000000000..988f11f5e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in.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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+
+
+class JsonApiOrganizationSettingIn(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',): {
+ 'ORGANIZATIONSETTING': "organizationSetting",
+ },
+ }
+
+ 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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiOrganizationSettingIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organizationSetting", must be one of ["organizationSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organizationSetting")
+ _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
+ """JsonApiOrganizationSettingIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organizationSetting", must be one of ["organizationSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organizationSetting")
+ _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_organization_setting_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py
new file mode 100644
index 000000000..1d10cb3ed
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py
@@ -0,0 +1,264 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class JsonApiOrganizationSettingInAttributes(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 {
+ 'content': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'content': 'content', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiOrganizationSettingInAttributes - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """JsonApiOrganizationSettingInAttributes - a model defined in OpenAPI
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_document.py
new file mode 100644
index 000000000..140f75cca
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_document.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_organization_setting_in import JsonApiOrganizationSettingIn
+ globals()['JsonApiOrganizationSettingIn'] = JsonApiOrganizationSettingIn
+
+
+class JsonApiOrganizationSettingInDocument(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': (JsonApiOrganizationSettingIn,), # 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
+ """JsonApiOrganizationSettingInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationSettingIn):
+
+ 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
+ """JsonApiOrganizationSettingInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationSettingIn):
+
+ 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_setting_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_out.py
new file mode 100644
index 000000000..31a427fbe
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+
+
+class JsonApiOrganizationSettingOut(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',): {
+ 'ORGANIZATIONSETTING': "organizationSetting",
+ },
+ }
+
+ 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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiOrganizationSettingOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organizationSetting", must be one of ["organizationSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organizationSetting")
+ _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
+ """JsonApiOrganizationSettingOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organizationSetting", must be one of ["organizationSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organizationSetting")
+ _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_organization_setting_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_out_document.py
new file mode 100644
index 000000000..109aec745
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_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_organization_setting_out import JsonApiOrganizationSettingOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiOrganizationSettingOut'] = JsonApiOrganizationSettingOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiOrganizationSettingOutDocument(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': (JsonApiOrganizationSettingOut,), # 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
+ """JsonApiOrganizationSettingOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationSettingOut):
+
+ 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
+ """JsonApiOrganizationSettingOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationSettingOut):
+
+ 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_organization_setting_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_out_list.py
new file mode 100644
index 000000000..d6974a9d2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_organization_setting_out_with_links import JsonApiOrganizationSettingOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiOrganizationSettingOutWithLinks'] = JsonApiOrganizationSettingOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiOrganizationSettingOutList(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': ([JsonApiOrganizationSettingOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiOrganizationSettingOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiOrganizationSettingOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiOrganizationSettingOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiOrganizationSettingOutWithLinks]):
+
+ 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
+ """
+
+ _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_setting_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_out_with_links.py
new file mode 100644
index 000000000..acd24ffad
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ from gooddata_api_client.model.json_api_organization_setting_out import JsonApiOrganizationSettingOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiOrganizationSettingOut'] = JsonApiOrganizationSettingOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiOrganizationSettingOutWithLinks(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',): {
+ 'ORGANIZATIONSETTING': "organizationSetting",
+ },
+ }
+
+ 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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiOrganizationSettingOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "organizationSetting", must be one of ["organizationSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organizationSetting")
+ _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
+ """JsonApiOrganizationSettingOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "organizationSetting", must be one of ["organizationSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organizationSetting")
+ _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': [
+ JsonApiOrganizationSettingOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_patch.py
new file mode 100644
index 000000000..a3d6ddfe5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_patch.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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+
+
+class JsonApiOrganizationSettingPatch(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',): {
+ 'ORGANIZATIONSETTING': "organizationSetting",
+ },
+ }
+
+ 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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiOrganizationSettingPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organizationSetting", must be one of ["organizationSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organizationSetting")
+ _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
+ """JsonApiOrganizationSettingPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "organizationSetting", must be one of ["organizationSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "organizationSetting")
+ _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_organization_setting_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_patch_document.py
new file mode 100644
index 000000000..cccc26f50
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_patch_document.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_organization_setting_patch import JsonApiOrganizationSettingPatch
+ globals()['JsonApiOrganizationSettingPatch'] = JsonApiOrganizationSettingPatch
+
+
+class JsonApiOrganizationSettingPatchDocument(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': (JsonApiOrganizationSettingPatch,), # 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
+ """JsonApiOrganizationSettingPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationSettingPatch):
+
+ 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
+ """JsonApiOrganizationSettingPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiOrganizationSettingPatch):
+
+ 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_theme_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_theme_in.py
new file mode 100644
index 000000000..695f8c45a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_theme_in.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_color_palette_in_attributes import JsonApiColorPaletteInAttributes
+ globals()['JsonApiColorPaletteInAttributes'] = JsonApiColorPaletteInAttributes
+
+
+class JsonApiThemeIn(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',): {
+ 'THEME': "theme",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiColorPaletteInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiThemeIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "theme", must be one of ["theme", ] # 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', "theme")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiThemeIn - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "theme", must be one of ["theme", ] # 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', "theme")
+ _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.attributes = attributes
+ 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_theme_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_theme_in_document.py
new file mode 100644
index 000000000..2ced6112a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_theme_in_document.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_theme_in import JsonApiThemeIn
+ globals()['JsonApiThemeIn'] = JsonApiThemeIn
+
+
+class JsonApiThemeInDocument(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': (JsonApiThemeIn,), # 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
+ """JsonApiThemeInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiThemeIn):
+
+ 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
+ """JsonApiThemeInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiThemeIn):
+
+ 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_theme_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_theme_out.py
new file mode 100644
index 000000000..8f8d2565e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_theme_out.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_color_palette_in_attributes import JsonApiColorPaletteInAttributes
+ globals()['JsonApiColorPaletteInAttributes'] = JsonApiColorPaletteInAttributes
+
+
+class JsonApiThemeOut(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',): {
+ 'THEME': "theme",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiColorPaletteInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiThemeOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "theme", must be one of ["theme", ] # 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', "theme")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiThemeOut - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "theme", must be one of ["theme", ] # 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', "theme")
+ _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.attributes = attributes
+ 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_theme_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_theme_out_document.py
new file mode 100644
index 000000000..b61d619c6
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_theme_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_theme_out import JsonApiThemeOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiThemeOut'] = JsonApiThemeOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiThemeOutDocument(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': (JsonApiThemeOut,), # 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
+ """JsonApiThemeOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiThemeOut):
+
+ 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
+ """JsonApiThemeOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiThemeOut):
+
+ 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_theme_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_theme_out_list.py
new file mode 100644
index 000000000..7c7a420ec
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_theme_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_theme_out_with_links import JsonApiThemeOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiThemeOutWithLinks'] = JsonApiThemeOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiThemeOutList(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': ([JsonApiThemeOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiThemeOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiThemeOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiThemeOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiThemeOutWithLinks]):
+
+ 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
+ """
+
+ _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_theme_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_theme_out_with_links.py
new file mode 100644
index 000000000..6a42205c4
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_theme_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_color_palette_in_attributes import JsonApiColorPaletteInAttributes
+ from gooddata_api_client.model.json_api_theme_out import JsonApiThemeOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiColorPaletteInAttributes'] = JsonApiColorPaletteInAttributes
+ globals()['JsonApiThemeOut'] = JsonApiThemeOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiThemeOutWithLinks(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',): {
+ 'THEME': "theme",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiColorPaletteInAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # 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
+ """JsonApiThemeOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "theme", must be one of ["theme", ] # 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,)
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "theme")
+ _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
+ """JsonApiThemeOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ attributes (JsonApiColorPaletteInAttributes):
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "theme", must be one of ["theme", ] # 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,)
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "theme")
+ _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': [
+ JsonApiThemeOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_theme_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_theme_patch.py
new file mode 100644
index 000000000..36a2fd9e5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_theme_patch.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_color_palette_patch_attributes import JsonApiColorPalettePatchAttributes
+ globals()['JsonApiColorPalettePatchAttributes'] = JsonApiColorPalettePatchAttributes
+
+
+class JsonApiThemePatch(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',): {
+ 'THEME': "theme",
+ },
+ }
+
+ 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 {
+ 'attributes': (JsonApiColorPalettePatchAttributes,), # noqa: E501
+ 'id': (str,), # noqa: E501
+ 'type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attributes': 'attributes', # noqa: E501
+ '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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiThemePatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPalettePatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "theme", must be one of ["theme", ] # 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', "theme")
+ _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.attributes = attributes
+ 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, attributes, id, *args, **kwargs): # noqa: E501
+ """JsonApiThemePatch - a model defined in OpenAPI
+
+ Args:
+ attributes (JsonApiColorPalettePatchAttributes):
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "theme", must be one of ["theme", ] # 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', "theme")
+ _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.attributes = attributes
+ 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_theme_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_theme_patch_document.py
new file mode 100644
index 000000000..5e8326993
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_theme_patch_document.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_theme_patch import JsonApiThemePatch
+ globals()['JsonApiThemePatch'] = JsonApiThemePatch
+
+
+class JsonApiThemePatchDocument(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': (JsonApiThemePatch,), # 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
+ """JsonApiThemePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiThemePatch):
+
+ 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
+ """JsonApiThemePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiThemePatch):
+
+ 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_user_group_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_in.py
new file mode 100644
index 000000000..385a2174e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_in.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_user_group_in_relationships import JsonApiUserGroupInRelationships
+ globals()['JsonApiUserGroupInRelationships'] = JsonApiUserGroupInRelationships
+
+
+class JsonApiUserGroupIn(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',): {
+ 'USERGROUP': "userGroup",
+ },
+ }
+
+ 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
+ 'relationships': (JsonApiUserGroupInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiUserGroupIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userGroup", must be one of ["userGroup", ] # 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,)
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userGroup")
+ _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
+ """JsonApiUserGroupIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userGroup", must be one of ["userGroup", ] # 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,)
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userGroup")
+ _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_user_group_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_in_document.py
new file mode 100644
index 000000000..7a6c0658b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_in_document.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_user_group_in import JsonApiUserGroupIn
+ globals()['JsonApiUserGroupIn'] = JsonApiUserGroupIn
+
+
+class JsonApiUserGroupInDocument(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': (JsonApiUserGroupIn,), # 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
+ """JsonApiUserGroupInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupIn):
+
+ 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
+ """JsonApiUserGroupInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupIn):
+
+ 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_user_group_in_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_in_relationships.py
new file mode 100644
index 000000000..73f2e2f64
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_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_user_group_in_relationships_parents import JsonApiUserGroupInRelationshipsParents
+ globals()['JsonApiUserGroupInRelationshipsParents'] = JsonApiUserGroupInRelationshipsParents
+
+
+class JsonApiUserGroupInRelationships(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 {
+ 'parents': (JsonApiUserGroupInRelationshipsParents,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'parents': 'parents', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiUserGroupInRelationships - 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,)
+ parents (JsonApiUserGroupInRelationshipsParents): [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
+ """JsonApiUserGroupInRelationships - 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,)
+ parents (JsonApiUserGroupInRelationshipsParents): [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_user_group_in_relationships_parents.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_in_relationships_parents.py
new file mode 100644
index 000000000..e9fb6e8c5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_in_relationships_parents.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_user_group_to_many_linkage import JsonApiUserGroupToManyLinkage
+ globals()['JsonApiUserGroupToManyLinkage'] = JsonApiUserGroupToManyLinkage
+
+
+class JsonApiUserGroupInRelationshipsParents(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': (JsonApiUserGroupToManyLinkage,), # 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
+ """JsonApiUserGroupInRelationshipsParents - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupToManyLinkage):
+
+ 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
+ """JsonApiUserGroupInRelationshipsParents - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupToManyLinkage):
+
+ 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_user_group_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_linkage.py
new file mode 100644
index 000000000..3992d66f5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_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 JsonApiUserGroupLinkage(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',): {
+ 'USERGROUP': "userGroup",
+ },
+ }
+
+ 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
+ """JsonApiUserGroupLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "userGroup", must be one of ["userGroup", ] # 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', "userGroup")
+ _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
+ """JsonApiUserGroupLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "userGroup", must be one of ["userGroup", ] # 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', "userGroup")
+ _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_user_group_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_out.py
new file mode 100644
index 000000000..1adbc6c1c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_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_user_group_in_relationships import JsonApiUserGroupInRelationships
+ globals()['JsonApiUserGroupInRelationships'] = JsonApiUserGroupInRelationships
+
+
+class JsonApiUserGroupOut(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',): {
+ 'USERGROUP': "userGroup",
+ },
+ }
+
+ 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
+ 'relationships': (JsonApiUserGroupInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiUserGroupOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userGroup", must be one of ["userGroup", ] # 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,)
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userGroup")
+ _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
+ """JsonApiUserGroupOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userGroup", must be one of ["userGroup", ] # 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,)
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userGroup")
+ _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_user_group_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_out_document.py
new file mode 100644
index 000000000..9569323ba
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_out_document.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_user_group_out import JsonApiUserGroupOut
+ from gooddata_api_client.model.json_api_user_group_out_with_links import JsonApiUserGroupOutWithLinks
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiUserGroupOut'] = JsonApiUserGroupOut
+ globals()['JsonApiUserGroupOutWithLinks'] = JsonApiUserGroupOutWithLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiUserGroupOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiUserGroupOut,), # noqa: E501
+ 'included': ([JsonApiUserGroupOutWithLinks],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiUserGroupOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupOut):
+
+ 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,)
+ included ([JsonApiUserGroupOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiUserGroupOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupOut):
+
+ 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,)
+ included ([JsonApiUserGroupOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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_user_group_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_out_list.py
new file mode 100644
index 000000000..a14bc923d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_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_user_group_out_with_links import JsonApiUserGroupOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiUserGroupOutWithLinks'] = JsonApiUserGroupOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiUserGroupOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiUserGroupOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiUserGroupOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiUserGroupOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiUserGroupOutWithLinks]):
+
+ 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,)
+ included ([JsonApiUserGroupOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiUserGroupOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiUserGroupOutWithLinks]):
+
+ 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,)
+ included ([JsonApiUserGroupOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_user_group_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_out_with_links.py
new file mode 100644
index 000000000..877a28f6f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_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_user_group_in_relationships import JsonApiUserGroupInRelationships
+ from gooddata_api_client.model.json_api_user_group_out import JsonApiUserGroupOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiUserGroupInRelationships'] = JsonApiUserGroupInRelationships
+ globals()['JsonApiUserGroupOut'] = JsonApiUserGroupOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiUserGroupOutWithLinks(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',): {
+ 'USERGROUP': "userGroup",
+ },
+ }
+
+ 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
+ 'relationships': (JsonApiUserGroupInRelationships,), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'relationships': 'relationships', # 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
+ """JsonApiUserGroupOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "userGroup", must be one of ["userGroup", ] # 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,)
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userGroup")
+ _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
+ """JsonApiUserGroupOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "userGroup", must be one of ["userGroup", ] # 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,)
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userGroup")
+ _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': [
+ JsonApiUserGroupOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_user_group_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_patch.py
new file mode 100644
index 000000000..1be422adc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_patch.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_user_group_in_relationships import JsonApiUserGroupInRelationships
+ globals()['JsonApiUserGroupInRelationships'] = JsonApiUserGroupInRelationships
+
+
+class JsonApiUserGroupPatch(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',): {
+ 'USERGROUP': "userGroup",
+ },
+ }
+
+ 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
+ 'relationships': (JsonApiUserGroupInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiUserGroupPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userGroup", must be one of ["userGroup", ] # 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,)
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userGroup")
+ _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
+ """JsonApiUserGroupPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userGroup", must be one of ["userGroup", ] # 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,)
+ relationships (JsonApiUserGroupInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userGroup")
+ _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_user_group_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_patch_document.py
new file mode 100644
index 000000000..e16f2e6f9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_patch_document.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_user_group_patch import JsonApiUserGroupPatch
+ globals()['JsonApiUserGroupPatch'] = JsonApiUserGroupPatch
+
+
+class JsonApiUserGroupPatchDocument(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': (JsonApiUserGroupPatch,), # 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
+ """JsonApiUserGroupPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupPatch):
+
+ 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
+ """JsonApiUserGroupPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserGroupPatch):
+
+ 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_user_group_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_to_many_linkage.py
new file mode 100644
index 000000000..e82b41825
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_user_group_linkage import JsonApiUserGroupLinkage
+ globals()['JsonApiUserGroupLinkage'] = JsonApiUserGroupLinkage
+
+
+class JsonApiUserGroupToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiUserGroupLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiUserGroupToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiUserGroupLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiUserGroupLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiUserGroupToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiUserGroupLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiUserGroupLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_user_group_to_one_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_to_one_linkage.py
new file mode 100644
index 000000000..423629448
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_group_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_user_group_linkage import JsonApiUserGroupLinkage
+ globals()['JsonApiUserGroupLinkage'] = JsonApiUserGroupLinkage
+
+
+class JsonApiUserGroupToOneLinkage(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',): {
+ 'USERGROUP': "userGroup",
+ },
+ }
+
+ 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
+ """JsonApiUserGroupToOneLinkage - 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 "userGroup" # 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
+ """JsonApiUserGroupToOneLinkage - 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 "userGroup" # 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': [
+ JsonApiUserGroupLinkage,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_user_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_in.py
new file mode 100644
index 000000000..35066c069
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_in.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_user_in_attributes import JsonApiUserInAttributes
+ from gooddata_api_client.model.json_api_user_in_relationships import JsonApiUserInRelationships
+ globals()['JsonApiUserInAttributes'] = JsonApiUserInAttributes
+ globals()['JsonApiUserInRelationships'] = JsonApiUserInRelationships
+
+
+class JsonApiUserIn(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',): {
+ 'USER': "user",
+ },
+ }
+
+ 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': (JsonApiUserInAttributes,), # noqa: E501
+ 'relationships': (JsonApiUserInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiUserIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "user", must be one of ["user", ] # 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 (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "user")
+ _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
+ """JsonApiUserIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "user", must be one of ["user", ] # 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 (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "user")
+ _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_user_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_in_attributes.py
new file mode 100644
index 000000000..1dd8dbb6b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_in_attributes.py
@@ -0,0 +1,264 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class JsonApiUserInAttributes(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 {
+ 'authentication_id': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'authentication_id': 'authenticationId', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiUserInAttributes - 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,)
+ authentication_id (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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
+ """JsonApiUserInAttributes - 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,)
+ authentication_id (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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_user_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_in_document.py
new file mode 100644
index 000000000..886b50047
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_in_document.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_user_in import JsonApiUserIn
+ globals()['JsonApiUserIn'] = JsonApiUserIn
+
+
+class JsonApiUserInDocument(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': (JsonApiUserIn,), # 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
+ """JsonApiUserInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserIn):
+
+ 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
+ """JsonApiUserInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserIn):
+
+ 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_user_in_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_in_relationships.py
new file mode 100644
index 000000000..a065bcc53
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_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_user_group_in_relationships_parents import JsonApiUserGroupInRelationshipsParents
+ globals()['JsonApiUserGroupInRelationshipsParents'] = JsonApiUserGroupInRelationshipsParents
+
+
+class JsonApiUserInRelationships(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 {
+ 'user_groups': (JsonApiUserGroupInRelationshipsParents,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'user_groups': 'userGroups', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiUserInRelationships - 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,)
+ user_groups (JsonApiUserGroupInRelationshipsParents): [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
+ """JsonApiUserInRelationships - 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,)
+ user_groups (JsonApiUserGroupInRelationshipsParents): [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_user_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_linkage.py
new file mode 100644
index 000000000..c696f1824
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_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 JsonApiUserLinkage(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',): {
+ 'USER': "user",
+ },
+ }
+
+ 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
+ """JsonApiUserLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "user", must be one of ["user", ] # 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', "user")
+ _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
+ """JsonApiUserLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "user", must be one of ["user", ] # 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', "user")
+ _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_user_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_out.py
new file mode 100644
index 000000000..7c820e757
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_out.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_user_in_attributes import JsonApiUserInAttributes
+ from gooddata_api_client.model.json_api_user_in_relationships import JsonApiUserInRelationships
+ globals()['JsonApiUserInAttributes'] = JsonApiUserInAttributes
+ globals()['JsonApiUserInRelationships'] = JsonApiUserInRelationships
+
+
+class JsonApiUserOut(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',): {
+ 'USER': "user",
+ },
+ }
+
+ 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': (JsonApiUserInAttributes,), # noqa: E501
+ 'relationships': (JsonApiUserInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiUserOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "user", must be one of ["user", ] # 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 (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "user")
+ _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
+ """JsonApiUserOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "user", must be one of ["user", ] # 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 (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "user")
+ _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_user_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_out_document.py
new file mode 100644
index 000000000..bf91724af
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_out_document.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_user_group_out_with_links import JsonApiUserGroupOutWithLinks
+ from gooddata_api_client.model.json_api_user_out import JsonApiUserOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiUserGroupOutWithLinks'] = JsonApiUserGroupOutWithLinks
+ globals()['JsonApiUserOut'] = JsonApiUserOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiUserOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiUserOut,), # noqa: E501
+ 'included': ([JsonApiUserGroupOutWithLinks],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiUserOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserOut):
+
+ 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,)
+ included ([JsonApiUserGroupOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiUserOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserOut):
+
+ 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,)
+ included ([JsonApiUserGroupOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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_user_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_out_list.py
new file mode 100644
index 000000000..76282bf51
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.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.list_links import ListLinks
+ globals()['JsonApiUserGroupOutWithLinks'] = JsonApiUserGroupOutWithLinks
+ globals()['JsonApiUserOutWithLinks'] = JsonApiUserOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiUserOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiUserOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiUserGroupOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiUserOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiUserOutWithLinks]):
+
+ 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,)
+ included ([JsonApiUserGroupOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiUserOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiUserOutWithLinks]):
+
+ 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,)
+ included ([JsonApiUserGroupOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_user_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_out_with_links.py
new file mode 100644
index 000000000..002a384f9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_user_in_attributes import JsonApiUserInAttributes
+ from gooddata_api_client.model.json_api_user_in_relationships import JsonApiUserInRelationships
+ from gooddata_api_client.model.json_api_user_out import JsonApiUserOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiUserInAttributes'] = JsonApiUserInAttributes
+ globals()['JsonApiUserInRelationships'] = JsonApiUserInRelationships
+ globals()['JsonApiUserOut'] = JsonApiUserOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiUserOutWithLinks(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',): {
+ 'USER': "user",
+ },
+ }
+
+ 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': (JsonApiUserInAttributes,), # noqa: E501
+ 'relationships': (JsonApiUserInRelationships,), # 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
+ 'relationships': 'relationships', # 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
+ """JsonApiUserOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "user", must be one of ["user", ] # 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 (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "user")
+ _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
+ """JsonApiUserOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "user", must be one of ["user", ] # 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 (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "user")
+ _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': [
+ JsonApiUserOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_user_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_patch.py
new file mode 100644
index 000000000..80faeb33c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_patch.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_user_in_attributes import JsonApiUserInAttributes
+ from gooddata_api_client.model.json_api_user_in_relationships import JsonApiUserInRelationships
+ globals()['JsonApiUserInAttributes'] = JsonApiUserInAttributes
+ globals()['JsonApiUserInRelationships'] = JsonApiUserInRelationships
+
+
+class JsonApiUserPatch(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',): {
+ 'USER': "user",
+ },
+ }
+
+ 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': (JsonApiUserInAttributes,), # noqa: E501
+ 'relationships': (JsonApiUserInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiUserPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "user", must be one of ["user", ] # 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 (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "user")
+ _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
+ """JsonApiUserPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "user", must be one of ["user", ] # 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 (JsonApiUserInAttributes): [optional] # noqa: E501
+ relationships (JsonApiUserInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "user")
+ _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_user_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_patch_document.py
new file mode 100644
index 000000000..2daae72a9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_patch_document.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_user_patch import JsonApiUserPatch
+ globals()['JsonApiUserPatch'] = JsonApiUserPatch
+
+
+class JsonApiUserPatchDocument(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': (JsonApiUserPatch,), # 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
+ """JsonApiUserPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserPatch):
+
+ 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
+ """JsonApiUserPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserPatch):
+
+ 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_user_setting_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_in.py
new file mode 100644
index 000000000..faa70c25a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_in.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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+
+
+class JsonApiUserSettingIn(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',): {
+ 'USERSETTING': "userSetting",
+ },
+ }
+
+ 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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiUserSettingIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userSetting", must be one of ["userSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userSetting")
+ _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
+ """JsonApiUserSettingIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userSetting", must be one of ["userSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userSetting")
+ _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_user_setting_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_in_document.py
new file mode 100644
index 000000000..ceb872794
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_in_document.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_user_setting_in import JsonApiUserSettingIn
+ globals()['JsonApiUserSettingIn'] = JsonApiUserSettingIn
+
+
+class JsonApiUserSettingInDocument(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': (JsonApiUserSettingIn,), # 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
+ """JsonApiUserSettingInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserSettingIn):
+
+ 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
+ """JsonApiUserSettingInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserSettingIn):
+
+ 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_user_setting_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_out.py
new file mode 100644
index 000000000..4d0cda2b6
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+
+
+class JsonApiUserSettingOut(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',): {
+ 'USERSETTING': "userSetting",
+ },
+ }
+
+ 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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiUserSettingOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userSetting", must be one of ["userSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userSetting")
+ _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
+ """JsonApiUserSettingOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "userSetting", must be one of ["userSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userSetting")
+ _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_user_setting_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_out_document.py
new file mode 100644
index 000000000..875fb9b4c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_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_user_setting_out import JsonApiUserSettingOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiUserSettingOut'] = JsonApiUserSettingOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiUserSettingOutDocument(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': (JsonApiUserSettingOut,), # 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
+ """JsonApiUserSettingOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserSettingOut):
+
+ 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
+ """JsonApiUserSettingOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiUserSettingOut):
+
+ 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_user_setting_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_out_list.py
new file mode 100644
index 000000000..1d2e6221e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_user_setting_out_with_links import JsonApiUserSettingOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiUserSettingOutWithLinks'] = JsonApiUserSettingOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiUserSettingOutList(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': ([JsonApiUserSettingOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiUserSettingOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiUserSettingOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiUserSettingOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiUserSettingOutWithLinks]):
+
+ 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
+ """
+
+ _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_user_setting_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_out_with_links.py
new file mode 100644
index 000000000..8793fa0bc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_setting_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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ from gooddata_api_client.model.json_api_user_setting_out import JsonApiUserSettingOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiUserSettingOut'] = JsonApiUserSettingOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiUserSettingOutWithLinks(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',): {
+ 'USERSETTING': "userSetting",
+ },
+ }
+
+ 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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiUserSettingOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "userSetting", must be one of ["userSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userSetting")
+ _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
+ """JsonApiUserSettingOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "userSetting", must be one of ["userSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "userSetting")
+ _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': [
+ JsonApiUserSettingOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_user_to_one_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_user_to_one_linkage.py
new file mode 100644
index 000000000..3a29cd136
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_user_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_user_linkage import JsonApiUserLinkage
+ globals()['JsonApiUserLinkage'] = JsonApiUserLinkage
+
+
+class JsonApiUserToOneLinkage(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',): {
+ 'USER': "user",
+ },
+ }
+
+ 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
+ """JsonApiUserToOneLinkage - 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 "user" # 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
+ """JsonApiUserToOneLinkage - 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 "user" # 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': [
+ JsonApiUserLinkage,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_in.py
new file mode 100644
index 000000000..3b93b25a5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_in.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_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+
+
+class JsonApiVisualizationObjectIn(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',): {
+ 'VISUALIZATIONOBJECT': "visualizationObject",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # 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
+ """JsonApiVisualizationObjectIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "visualizationObject")
+ _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
+ """JsonApiVisualizationObjectIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "visualizationObject")
+ _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_visualization_object_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_in_document.py
new file mode 100644
index 000000000..ee08a6301
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_in_document.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_visualization_object_in import JsonApiVisualizationObjectIn
+ globals()['JsonApiVisualizationObjectIn'] = JsonApiVisualizationObjectIn
+
+
+class JsonApiVisualizationObjectInDocument(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': (JsonApiVisualizationObjectIn,), # 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
+ """JsonApiVisualizationObjectInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiVisualizationObjectIn):
+
+ 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
+ """JsonApiVisualizationObjectInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiVisualizationObjectIn):
+
+ 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_visualization_object_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_linkage.py
new file mode 100644
index 000000000..cfeae735a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_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 JsonApiVisualizationObjectLinkage(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',): {
+ 'VISUALIZATIONOBJECT': "visualizationObject",
+ },
+ }
+
+ 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
+ """JsonApiVisualizationObjectLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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', "visualizationObject")
+ _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
+ """JsonApiVisualizationObjectLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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', "visualizationObject")
+ _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_visualization_object_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out.py
new file mode 100644
index 000000000..8167e53ef
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships
+
+
+class JsonApiVisualizationObjectOut(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',): {
+ 'VISUALIZATIONOBJECT': "visualizationObject",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # noqa: E501
+ 'relationships': (JsonApiMetricOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiVisualizationObjectOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "visualizationObject")
+ _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
+ """JsonApiVisualizationObjectOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "visualizationObject")
+ _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_visualization_object_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_document.py
new file mode 100644
index 000000000..60ba9cea1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_document.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_metric_out_includes import JsonApiMetricOutIncludes
+ from gooddata_api_client.model.json_api_visualization_object_out import JsonApiVisualizationObjectOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiMetricOutIncludes'] = JsonApiMetricOutIncludes
+ globals()['JsonApiVisualizationObjectOut'] = JsonApiVisualizationObjectOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiVisualizationObjectOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiVisualizationObjectOut,), # noqa: E501
+ 'included': ([JsonApiMetricOutIncludes],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiVisualizationObjectOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiVisualizationObjectOut):
+
+ 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,)
+ included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiVisualizationObjectOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiVisualizationObjectOut):
+
+ 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,)
+ included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501
+ 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_visualization_object_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_list.py
new file mode 100644
index 000000000..1fdc74715
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_metric_out_includes import JsonApiMetricOutIncludes
+ from gooddata_api_client.model.json_api_visualization_object_out_with_links import JsonApiVisualizationObjectOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiMetricOutIncludes'] = JsonApiMetricOutIncludes
+ globals()['JsonApiVisualizationObjectOutWithLinks'] = JsonApiVisualizationObjectOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiVisualizationObjectOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiVisualizationObjectOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiMetricOutIncludes],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiVisualizationObjectOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiVisualizationObjectOutWithLinks]):
+
+ 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,)
+ included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiVisualizationObjectOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiVisualizationObjectOutWithLinks]):
+
+ 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,)
+ included ([JsonApiMetricOutIncludes]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_visualization_object_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_with_links.py
new file mode 100644
index 000000000..7ae403686
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships
+ from gooddata_api_client.model.json_api_visualization_object_out import JsonApiVisualizationObjectOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiMetricOutRelationships'] = JsonApiMetricOutRelationships
+ globals()['JsonApiVisualizationObjectOut'] = JsonApiVisualizationObjectOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiVisualizationObjectOutWithLinks(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',): {
+ 'VISUALIZATIONOBJECT': "visualizationObject",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # noqa: E501
+ 'relationships': (JsonApiMetricOutRelationships,), # 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
+ 'relationships': 'relationships', # 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
+ """JsonApiVisualizationObjectOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "visualizationObject")
+ _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
+ """JsonApiVisualizationObjectOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ relationships (JsonApiMetricOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "visualizationObject")
+ _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': [
+ JsonApiVisualizationObjectOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_patch.py
new file mode 100644
index 000000000..b439c9a79
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_patch.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_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+ globals()['JsonApiAnalyticalDashboardInAttributes'] = JsonApiAnalyticalDashboardInAttributes
+
+
+class JsonApiVisualizationObjectPatch(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',): {
+ 'VISUALIZATIONOBJECT': "visualizationObject",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiAnalyticalDashboardInAttributes,), # 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
+ """JsonApiVisualizationObjectPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "visualizationObject")
+ _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
+ """JsonApiVisualizationObjectPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "visualizationObject", must be one of ["visualizationObject", ] # 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 (JsonApiAnalyticalDashboardInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "visualizationObject")
+ _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_visualization_object_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_patch_document.py
new file mode 100644
index 000000000..81fc9b8d5
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_patch_document.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_visualization_object_patch import JsonApiVisualizationObjectPatch
+ globals()['JsonApiVisualizationObjectPatch'] = JsonApiVisualizationObjectPatch
+
+
+class JsonApiVisualizationObjectPatchDocument(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': (JsonApiVisualizationObjectPatch,), # 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
+ """JsonApiVisualizationObjectPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiVisualizationObjectPatch):
+
+ 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
+ """JsonApiVisualizationObjectPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiVisualizationObjectPatch):
+
+ 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_visualization_object_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_to_many_linkage.py
new file mode 100644
index 000000000..a31b221b1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_visualization_object_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_visualization_object_linkage import JsonApiVisualizationObjectLinkage
+ globals()['JsonApiVisualizationObjectLinkage'] = JsonApiVisualizationObjectLinkage
+
+
+class JsonApiVisualizationObjectToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiVisualizationObjectLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiVisualizationObjectToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiVisualizationObjectLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiVisualizationObjectLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiVisualizationObjectToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiVisualizationObjectLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiVisualizationObjectLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in.py
new file mode 100644
index 000000000..529e24159
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_data_filter_in_attributes import JsonApiWorkspaceDataFilterInAttributes
+ from gooddata_api_client.model.json_api_workspace_data_filter_in_relationships import JsonApiWorkspaceDataFilterInRelationships
+ globals()['JsonApiWorkspaceDataFilterInAttributes'] = JsonApiWorkspaceDataFilterInAttributes
+ globals()['JsonApiWorkspaceDataFilterInRelationships'] = JsonApiWorkspaceDataFilterInRelationships
+
+
+class JsonApiWorkspaceDataFilterIn(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',): {
+ 'WORKSPACEDATAFILTER': "workspaceDataFilter",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiWorkspaceDataFilterInAttributes,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceDataFilterInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceDataFilterIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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 (JsonApiWorkspaceDataFilterInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilter")
+ _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
+ """JsonApiWorkspaceDataFilterIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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 (JsonApiWorkspaceDataFilterInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilter")
+ _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_workspace_data_filter_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in_attributes.py
new file mode 100644
index 000000000..1e128dd9a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in_attributes.py
@@ -0,0 +1,272 @@
+"""
+ 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 JsonApiWorkspaceDataFilterInAttributes(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 {
+ 'column_name': (str,), # noqa: E501
+ 'description': (str,), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'column_name': 'columnName', # noqa: E501
+ 'description': 'description', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceDataFilterInAttributes - 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,)
+ column_name (str): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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
+ """JsonApiWorkspaceDataFilterInAttributes - 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,)
+ column_name (str): [optional] # noqa: E501
+ description (str): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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_workspace_data_filter_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in_document.py
new file mode 100644
index 000000000..b3c66bb0b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in_document.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_workspace_data_filter_in import JsonApiWorkspaceDataFilterIn
+ globals()['JsonApiWorkspaceDataFilterIn'] = JsonApiWorkspaceDataFilterIn
+
+
+class JsonApiWorkspaceDataFilterInDocument(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': (JsonApiWorkspaceDataFilterIn,), # 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
+ """JsonApiWorkspaceDataFilterInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterIn):
+
+ 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
+ """JsonApiWorkspaceDataFilterInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterIn):
+
+ 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_workspace_data_filter_in_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in_relationships.py
new file mode 100644
index 000000000..7a64cd2b2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_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_workspace_data_filter_in_relationships_filter_settings import JsonApiWorkspaceDataFilterInRelationshipsFilterSettings
+ globals()['JsonApiWorkspaceDataFilterInRelationshipsFilterSettings'] = JsonApiWorkspaceDataFilterInRelationshipsFilterSettings
+
+
+class JsonApiWorkspaceDataFilterInRelationships(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 {
+ 'filter_settings': (JsonApiWorkspaceDataFilterInRelationshipsFilterSettings,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'filter_settings': 'filterSettings', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceDataFilterInRelationships - 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,)
+ filter_settings (JsonApiWorkspaceDataFilterInRelationshipsFilterSettings): [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
+ """JsonApiWorkspaceDataFilterInRelationships - 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,)
+ filter_settings (JsonApiWorkspaceDataFilterInRelationshipsFilterSettings): [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_workspace_data_filter_in_relationships_filter_settings.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in_relationships_filter_settings.py
new file mode 100644
index 000000000..cd2ad41cd
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_in_relationships_filter_settings.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_workspace_data_filter_setting_to_many_linkage import JsonApiWorkspaceDataFilterSettingToManyLinkage
+ globals()['JsonApiWorkspaceDataFilterSettingToManyLinkage'] = JsonApiWorkspaceDataFilterSettingToManyLinkage
+
+
+class JsonApiWorkspaceDataFilterInRelationshipsFilterSettings(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': (JsonApiWorkspaceDataFilterSettingToManyLinkage,), # 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
+ """JsonApiWorkspaceDataFilterInRelationshipsFilterSettings - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterSettingToManyLinkage):
+
+ 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
+ """JsonApiWorkspaceDataFilterInRelationshipsFilterSettings - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterSettingToManyLinkage):
+
+ 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_workspace_data_filter_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_linkage.py
new file mode 100644
index 000000000..bfdfe5c0b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_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 JsonApiWorkspaceDataFilterLinkage(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',): {
+ 'WORKSPACEDATAFILTER': "workspaceDataFilter",
+ },
+ }
+
+ 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
+ """JsonApiWorkspaceDataFilterLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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', "workspaceDataFilter")
+ _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
+ """JsonApiWorkspaceDataFilterLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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', "workspaceDataFilter")
+ _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_workspace_data_filter_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_out.py
new file mode 100644
index 000000000..a4b320b78
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_out.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_data_filter_in_attributes import JsonApiWorkspaceDataFilterInAttributes
+ from gooddata_api_client.model.json_api_workspace_data_filter_in_relationships import JsonApiWorkspaceDataFilterInRelationships
+ globals()['JsonApiWorkspaceDataFilterInAttributes'] = JsonApiWorkspaceDataFilterInAttributes
+ globals()['JsonApiWorkspaceDataFilterInRelationships'] = JsonApiWorkspaceDataFilterInRelationships
+
+
+class JsonApiWorkspaceDataFilterOut(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',): {
+ 'WORKSPACEDATAFILTER': "workspaceDataFilter",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiWorkspaceDataFilterInAttributes,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceDataFilterInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceDataFilterOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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 (JsonApiWorkspaceDataFilterInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilter")
+ _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
+ """JsonApiWorkspaceDataFilterOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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 (JsonApiWorkspaceDataFilterInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilter")
+ _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_workspace_data_filter_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_out_document.py
new file mode 100644
index 000000000..370909507
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_out_document.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_workspace_data_filter_out import JsonApiWorkspaceDataFilterOut
+ from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_with_links import JsonApiWorkspaceDataFilterSettingOutWithLinks
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiWorkspaceDataFilterOut'] = JsonApiWorkspaceDataFilterOut
+ globals()['JsonApiWorkspaceDataFilterSettingOutWithLinks'] = JsonApiWorkspaceDataFilterSettingOutWithLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiWorkspaceDataFilterOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiWorkspaceDataFilterOut,), # noqa: E501
+ 'included': ([JsonApiWorkspaceDataFilterSettingOutWithLinks],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiWorkspaceDataFilterOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterOut):
+
+ 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,)
+ included ([JsonApiWorkspaceDataFilterSettingOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiWorkspaceDataFilterOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterOut):
+
+ 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,)
+ included ([JsonApiWorkspaceDataFilterSettingOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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_workspace_data_filter_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_out_list.py
new file mode 100644
index 000000000..0dc3ddddc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_data_filter_out_with_links import JsonApiWorkspaceDataFilterOutWithLinks
+ from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_with_links import JsonApiWorkspaceDataFilterSettingOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiWorkspaceDataFilterOutWithLinks'] = JsonApiWorkspaceDataFilterOutWithLinks
+ globals()['JsonApiWorkspaceDataFilterSettingOutWithLinks'] = JsonApiWorkspaceDataFilterSettingOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiWorkspaceDataFilterOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiWorkspaceDataFilterOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiWorkspaceDataFilterSettingOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiWorkspaceDataFilterOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiWorkspaceDataFilterOutWithLinks]):
+
+ 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,)
+ included ([JsonApiWorkspaceDataFilterSettingOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiWorkspaceDataFilterOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiWorkspaceDataFilterOutWithLinks]):
+
+ 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,)
+ included ([JsonApiWorkspaceDataFilterSettingOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_workspace_data_filter_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_out_with_links.py
new file mode 100644
index 000000000..6b6f822de
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_workspace_data_filter_in_attributes import JsonApiWorkspaceDataFilterInAttributes
+ from gooddata_api_client.model.json_api_workspace_data_filter_in_relationships import JsonApiWorkspaceDataFilterInRelationships
+ from gooddata_api_client.model.json_api_workspace_data_filter_out import JsonApiWorkspaceDataFilterOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiWorkspaceDataFilterInAttributes'] = JsonApiWorkspaceDataFilterInAttributes
+ globals()['JsonApiWorkspaceDataFilterInRelationships'] = JsonApiWorkspaceDataFilterInRelationships
+ globals()['JsonApiWorkspaceDataFilterOut'] = JsonApiWorkspaceDataFilterOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiWorkspaceDataFilterOutWithLinks(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',): {
+ 'WORKSPACEDATAFILTER': "workspaceDataFilter",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiWorkspaceDataFilterInAttributes,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceDataFilterInRelationships,), # 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
+ 'relationships': 'relationships', # 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
+ """JsonApiWorkspaceDataFilterOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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 (JsonApiWorkspaceDataFilterInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilter")
+ _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
+ """JsonApiWorkspaceDataFilterOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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 (JsonApiWorkspaceDataFilterInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilter")
+ _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': [
+ JsonApiWorkspaceDataFilterOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_patch.py
new file mode 100644
index 000000000..4ea306d5d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_patch.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_data_filter_in_attributes import JsonApiWorkspaceDataFilterInAttributes
+ from gooddata_api_client.model.json_api_workspace_data_filter_in_relationships import JsonApiWorkspaceDataFilterInRelationships
+ globals()['JsonApiWorkspaceDataFilterInAttributes'] = JsonApiWorkspaceDataFilterInAttributes
+ globals()['JsonApiWorkspaceDataFilterInRelationships'] = JsonApiWorkspaceDataFilterInRelationships
+
+
+class JsonApiWorkspaceDataFilterPatch(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',): {
+ 'WORKSPACEDATAFILTER': "workspaceDataFilter",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiWorkspaceDataFilterInAttributes,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceDataFilterInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceDataFilterPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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 (JsonApiWorkspaceDataFilterInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilter")
+ _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
+ """JsonApiWorkspaceDataFilterPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceDataFilter", must be one of ["workspaceDataFilter", ] # 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 (JsonApiWorkspaceDataFilterInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilter")
+ _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_workspace_data_filter_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_patch_document.py
new file mode 100644
index 000000000..b13e0eba2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_patch_document.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_workspace_data_filter_patch import JsonApiWorkspaceDataFilterPatch
+ globals()['JsonApiWorkspaceDataFilterPatch'] = JsonApiWorkspaceDataFilterPatch
+
+
+class JsonApiWorkspaceDataFilterPatchDocument(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': (JsonApiWorkspaceDataFilterPatch,), # 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
+ """JsonApiWorkspaceDataFilterPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterPatch):
+
+ 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
+ """JsonApiWorkspaceDataFilterPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterPatch):
+
+ 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_workspace_data_filter_setting_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_linkage.py
new file mode 100644
index 000000000..c8db6b4c1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_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 JsonApiWorkspaceDataFilterSettingLinkage(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',): {
+ 'WORKSPACEDATAFILTERSETTING': "workspaceDataFilterSetting",
+ },
+ }
+
+ 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
+ """JsonApiWorkspaceDataFilterSettingLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "workspaceDataFilterSetting", must be one of ["workspaceDataFilterSetting", ] # 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', "workspaceDataFilterSetting")
+ _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
+ """JsonApiWorkspaceDataFilterSettingLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "workspaceDataFilterSetting", must be one of ["workspaceDataFilterSetting", ] # 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', "workspaceDataFilterSetting")
+ _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_workspace_data_filter_setting_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out.py
new file mode 100644
index 000000000..fc781e493
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_attributes import JsonApiWorkspaceDataFilterSettingOutAttributes
+ from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_relationships import JsonApiWorkspaceDataFilterSettingOutRelationships
+ globals()['JsonApiWorkspaceDataFilterSettingOutAttributes'] = JsonApiWorkspaceDataFilterSettingOutAttributes
+ globals()['JsonApiWorkspaceDataFilterSettingOutRelationships'] = JsonApiWorkspaceDataFilterSettingOutRelationships
+
+
+class JsonApiWorkspaceDataFilterSettingOut(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',): {
+ 'WORKSPACEDATAFILTERSETTING': "workspaceDataFilterSetting",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiWorkspaceDataFilterSettingOutAttributes,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceDataFilterSettingOutRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceDataFilterSettingOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceDataFilterSetting", must be one of ["workspaceDataFilterSetting", ] # 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 (JsonApiWorkspaceDataFilterSettingOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterSettingOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilterSetting")
+ _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
+ """JsonApiWorkspaceDataFilterSettingOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceDataFilterSetting", must be one of ["workspaceDataFilterSetting", ] # 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 (JsonApiWorkspaceDataFilterSettingOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterSettingOutRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilterSetting")
+ _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_workspace_data_filter_setting_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_attributes.py
new file mode 100644
index 000000000..9dd4a0229
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_attributes.py
@@ -0,0 +1,272 @@
+"""
+ 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 JsonApiWorkspaceDataFilterSettingOutAttributes(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 {
+ 'description': (str,), # noqa: E501
+ 'filter_values': ([str],), # noqa: E501
+ 'title': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'description': 'description', # noqa: E501
+ 'filter_values': 'filterValues', # noqa: E501
+ 'title': 'title', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceDataFilterSettingOutAttributes - 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,)
+ description (str): [optional] # noqa: E501
+ filter_values ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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
+ """JsonApiWorkspaceDataFilterSettingOutAttributes - 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,)
+ description (str): [optional] # noqa: E501
+ filter_values ([str]): [optional] # noqa: E501
+ title (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ 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_workspace_data_filter_setting_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_document.py
new file mode 100644
index 000000000..8cf426cb8
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_document.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_workspace_data_filter_out_with_links import JsonApiWorkspaceDataFilterOutWithLinks
+ from gooddata_api_client.model.json_api_workspace_data_filter_setting_out import JsonApiWorkspaceDataFilterSettingOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiWorkspaceDataFilterOutWithLinks'] = JsonApiWorkspaceDataFilterOutWithLinks
+ globals()['JsonApiWorkspaceDataFilterSettingOut'] = JsonApiWorkspaceDataFilterSettingOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiWorkspaceDataFilterSettingOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiWorkspaceDataFilterSettingOut,), # noqa: E501
+ 'included': ([JsonApiWorkspaceDataFilterOutWithLinks],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiWorkspaceDataFilterSettingOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterSettingOut):
+
+ 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,)
+ included ([JsonApiWorkspaceDataFilterOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiWorkspaceDataFilterSettingOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterSettingOut):
+
+ 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,)
+ included ([JsonApiWorkspaceDataFilterOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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_workspace_data_filter_setting_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_list.py
new file mode 100644
index 000000000..8c0cf0e3d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_list.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_data_filter_out_with_links import JsonApiWorkspaceDataFilterOutWithLinks
+ from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_with_links import JsonApiWorkspaceDataFilterSettingOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiWorkspaceDataFilterOutWithLinks'] = JsonApiWorkspaceDataFilterOutWithLinks
+ globals()['JsonApiWorkspaceDataFilterSettingOutWithLinks'] = JsonApiWorkspaceDataFilterSettingOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiWorkspaceDataFilterSettingOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiWorkspaceDataFilterSettingOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiWorkspaceDataFilterOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiWorkspaceDataFilterSettingOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiWorkspaceDataFilterSettingOutWithLinks]):
+
+ 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,)
+ included ([JsonApiWorkspaceDataFilterOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiWorkspaceDataFilterSettingOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiWorkspaceDataFilterSettingOutWithLinks]):
+
+ 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,)
+ included ([JsonApiWorkspaceDataFilterOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_workspace_data_filter_setting_out_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_relationships.py
new file mode 100644
index 000000000..4bf0de815
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_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_workspace_data_filter_setting_out_relationships_workspace_data_filter import JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter
+ globals()['JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter'] = JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter
+
+
+class JsonApiWorkspaceDataFilterSettingOutRelationships(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 {
+ 'workspace_data_filter': (JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'workspace_data_filter': 'workspaceDataFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceDataFilterSettingOutRelationships - 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,)
+ workspace_data_filter (JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter): [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
+ """JsonApiWorkspaceDataFilterSettingOutRelationships - 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,)
+ workspace_data_filter (JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter): [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_workspace_data_filter_setting_out_relationships_workspace_data_filter.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_relationships_workspace_data_filter.py
new file mode 100644
index 000000000..b4b386b20
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_relationships_workspace_data_filter.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_workspace_data_filter_to_one_linkage import JsonApiWorkspaceDataFilterToOneLinkage
+ globals()['JsonApiWorkspaceDataFilterToOneLinkage'] = JsonApiWorkspaceDataFilterToOneLinkage
+
+
+class JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter(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': (JsonApiWorkspaceDataFilterToOneLinkage,), # 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
+ """JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterToOneLinkage):
+
+ 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
+ """JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceDataFilterToOneLinkage):
+
+ 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_workspace_data_filter_setting_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_with_links.py
new file mode 100644
index 000000000..3ce2b6e00
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_out_with_links.py
@@ -0,0 +1,355 @@
+"""
+ 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_workspace_data_filter_setting_out import JsonApiWorkspaceDataFilterSettingOut
+ from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_attributes import JsonApiWorkspaceDataFilterSettingOutAttributes
+ from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_relationships import JsonApiWorkspaceDataFilterSettingOutRelationships
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiWorkspaceDataFilterSettingOut'] = JsonApiWorkspaceDataFilterSettingOut
+ globals()['JsonApiWorkspaceDataFilterSettingOutAttributes'] = JsonApiWorkspaceDataFilterSettingOutAttributes
+ globals()['JsonApiWorkspaceDataFilterSettingOutRelationships'] = JsonApiWorkspaceDataFilterSettingOutRelationships
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiWorkspaceDataFilterSettingOutWithLinks(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',): {
+ 'WORKSPACEDATAFILTERSETTING': "workspaceDataFilterSetting",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiWorkspaceDataFilterSettingOutAttributes,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceDataFilterSettingOutRelationships,), # 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
+ 'relationships': 'relationships', # 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
+ """JsonApiWorkspaceDataFilterSettingOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "workspaceDataFilterSetting", must be one of ["workspaceDataFilterSetting", ] # 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 (JsonApiWorkspaceDataFilterSettingOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterSettingOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilterSetting")
+ _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
+ """JsonApiWorkspaceDataFilterSettingOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "workspaceDataFilterSetting", must be one of ["workspaceDataFilterSetting", ] # 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 (JsonApiWorkspaceDataFilterSettingOutAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceDataFilterSettingOutRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceDataFilterSetting")
+ _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': [
+ JsonApiWorkspaceDataFilterSettingOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_to_many_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_to_many_linkage.py
new file mode 100644
index 000000000..dc2ebd7fb
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_setting_to_many_linkage.py
@@ -0,0 +1,292 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_data_filter_setting_linkage import JsonApiWorkspaceDataFilterSettingLinkage
+ globals()['JsonApiWorkspaceDataFilterSettingLinkage'] = JsonApiWorkspaceDataFilterSettingLinkage
+
+
+class JsonApiWorkspaceDataFilterSettingToManyLinkage(ModelSimple):
+ """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.
+ 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 {
+ 'value': ([JsonApiWorkspaceDataFilterSettingLinkage],),
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {}
+
+ read_only_vars = set()
+
+ _composed_schemas = None
+
+ 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):
+ """JsonApiWorkspaceDataFilterSettingToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiWorkspaceDataFilterSettingLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiWorkspaceDataFilterSettingLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs):
+ """JsonApiWorkspaceDataFilterSettingToManyLinkage - a model defined in OpenAPI
+
+ Note that value can be passed either in args or in kwargs, but not in both.
+
+ Args:
+ args[0] ([JsonApiWorkspaceDataFilterSettingLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # noqa: E501
+
+ Keyword Args:
+ value ([JsonApiWorkspaceDataFilterSettingLinkage]): References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.. # 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,)
+ """
+ # required up here when default value is not given
+ _path_to_item = kwargs.pop('_path_to_item', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if 'value' in kwargs:
+ value = kwargs.pop('value')
+ elif args:
+ args = list(args)
+ value = args.pop(0)
+ else:
+ raise ApiTypeError(
+ "value is required, but not passed in args or kwargs and doesn't have default",
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _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
+ if kwargs:
+ raise ApiTypeError(
+ "Invalid named arguments=%s passed to %s. Remove those invalid named arguments." % (
+ kwargs,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ return self
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_to_one_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_to_one_linkage.py
new file mode 100644
index 000000000..8123bc89c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_data_filter_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_workspace_data_filter_linkage import JsonApiWorkspaceDataFilterLinkage
+ globals()['JsonApiWorkspaceDataFilterLinkage'] = JsonApiWorkspaceDataFilterLinkage
+
+
+class JsonApiWorkspaceDataFilterToOneLinkage(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',): {
+ 'WORKSPACEDATAFILTER': "workspaceDataFilter",
+ },
+ }
+
+ 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
+ """JsonApiWorkspaceDataFilterToOneLinkage - 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 "workspaceDataFilter" # 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
+ """JsonApiWorkspaceDataFilterToOneLinkage - 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 "workspaceDataFilter" # 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': [
+ JsonApiWorkspaceDataFilterLinkage,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in.py
new file mode 100644
index 000000000..5a466a969
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_in_attributes import JsonApiWorkspaceInAttributes
+ from gooddata_api_client.model.json_api_workspace_in_relationships import JsonApiWorkspaceInRelationships
+ globals()['JsonApiWorkspaceInAttributes'] = JsonApiWorkspaceInAttributes
+ globals()['JsonApiWorkspaceInRelationships'] = JsonApiWorkspaceInRelationships
+
+
+class JsonApiWorkspaceIn(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',): {
+ 'WORKSPACE': "workspace",
+ },
+ }
+
+ 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': (JsonApiWorkspaceInAttributes,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspace", must be one of ["workspace", ] # 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 (JsonApiWorkspaceInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspace")
+ _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
+ """JsonApiWorkspaceIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspace", must be one of ["workspace", ] # 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 (JsonApiWorkspaceInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspace")
+ _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_workspace_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in_attributes.py
new file mode 100644
index 000000000..5f8ad00c0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in_attributes.py
@@ -0,0 +1,272 @@
+"""
+ 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 JsonApiWorkspaceInAttributes(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 {
+ 'description': (str,), # noqa: E501
+ 'early_access': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'description': 'description', # noqa: E501
+ 'early_access': 'earlyAccess', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceInAttributes - 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,)
+ description (str): [optional] # noqa: E501
+ early_access (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceInAttributes - 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,)
+ description (str): [optional] # noqa: E501
+ early_access (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in_document.py
new file mode 100644
index 000000000..f29b24093
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in_document.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_workspace_in import JsonApiWorkspaceIn
+ globals()['JsonApiWorkspaceIn'] = JsonApiWorkspaceIn
+
+
+class JsonApiWorkspaceInDocument(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': (JsonApiWorkspaceIn,), # 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
+ """JsonApiWorkspaceInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceIn):
+
+ 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
+ """JsonApiWorkspaceInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceIn):
+
+ 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_workspace_in_relationships.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in_relationships.py
new file mode 100644
index 000000000..f26a4c93c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_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_workspace_in_relationships_parent import JsonApiWorkspaceInRelationshipsParent
+ globals()['JsonApiWorkspaceInRelationshipsParent'] = JsonApiWorkspaceInRelationshipsParent
+
+
+class JsonApiWorkspaceInRelationships(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 {
+ 'parent': (JsonApiWorkspaceInRelationshipsParent,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'parent': 'parent', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceInRelationships - 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,)
+ parent (JsonApiWorkspaceInRelationshipsParent): [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
+ """JsonApiWorkspaceInRelationships - 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,)
+ parent (JsonApiWorkspaceInRelationshipsParent): [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_workspace_in_relationships_parent.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in_relationships_parent.py
new file mode 100644
index 000000000..067bd3e7d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_in_relationships_parent.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_workspace_to_one_linkage import JsonApiWorkspaceToOneLinkage
+ globals()['JsonApiWorkspaceToOneLinkage'] = JsonApiWorkspaceToOneLinkage
+
+
+class JsonApiWorkspaceInRelationshipsParent(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': (JsonApiWorkspaceToOneLinkage,), # 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
+ """JsonApiWorkspaceInRelationshipsParent - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceToOneLinkage):
+
+ 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
+ """JsonApiWorkspaceInRelationshipsParent - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceToOneLinkage):
+
+ 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_workspace_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_linkage.py
new file mode 100644
index 000000000..dd1ca214a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_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 JsonApiWorkspaceLinkage(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',): {
+ 'WORKSPACE': "workspace",
+ },
+ }
+
+ 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
+ """JsonApiWorkspaceLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "workspace", must be one of ["workspace", ] # 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', "workspace")
+ _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
+ """JsonApiWorkspaceLinkage - a model defined in OpenAPI
+
+ Args:
+ id (str):
+
+ Keyword Args:
+ type (str): defaults to "workspace", must be one of ["workspace", ] # 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', "workspace")
+ _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_workspace_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out.py
new file mode 100644
index 000000000..65794d693
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out.py
@@ -0,0 +1,308 @@
+"""
+ 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_workspace_in_attributes import JsonApiWorkspaceInAttributes
+ from gooddata_api_client.model.json_api_workspace_in_relationships import JsonApiWorkspaceInRelationships
+ from gooddata_api_client.model.json_api_workspace_out_meta import JsonApiWorkspaceOutMeta
+ globals()['JsonApiWorkspaceInAttributes'] = JsonApiWorkspaceInAttributes
+ globals()['JsonApiWorkspaceInRelationships'] = JsonApiWorkspaceInRelationships
+ globals()['JsonApiWorkspaceOutMeta'] = JsonApiWorkspaceOutMeta
+
+
+class JsonApiWorkspaceOut(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',): {
+ 'WORKSPACE': "workspace",
+ },
+ }
+
+ 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': (JsonApiWorkspaceInAttributes,), # noqa: E501
+ 'meta': (JsonApiWorkspaceOutMeta,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'meta': 'meta', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspace", must be one of ["workspace", ] # 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 (JsonApiWorkspaceInAttributes): [optional] # noqa: E501
+ meta (JsonApiWorkspaceOutMeta): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspace")
+ _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
+ """JsonApiWorkspaceOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspace", must be one of ["workspace", ] # 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 (JsonApiWorkspaceInAttributes): [optional] # noqa: E501
+ meta (JsonApiWorkspaceOutMeta): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspace")
+ _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_workspace_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_document.py
new file mode 100644
index 000000000..bf19ab726
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_document.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_workspace_out import JsonApiWorkspaceOut
+ from gooddata_api_client.model.json_api_workspace_out_with_links import JsonApiWorkspaceOutWithLinks
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiWorkspaceOut'] = JsonApiWorkspaceOut
+ globals()['JsonApiWorkspaceOutWithLinks'] = JsonApiWorkspaceOutWithLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiWorkspaceOutDocument(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 = {
+ ('included',): {
+ },
+ }
+
+ @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': (JsonApiWorkspaceOut,), # noqa: E501
+ 'included': ([JsonApiWorkspaceOutWithLinks],), # noqa: E501
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiWorkspaceOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceOut):
+
+ 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,)
+ included ([JsonApiWorkspaceOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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
+ """JsonApiWorkspaceOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceOut):
+
+ 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,)
+ included ([JsonApiWorkspaceOutWithLinks]): Included resources. [optional] # noqa: E501
+ 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_workspace_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_list.py
new file mode 100644
index 000000000..10f53cc0c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_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_workspace_out_with_links import JsonApiWorkspaceOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiWorkspaceOutWithLinks'] = JsonApiWorkspaceOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiWorkspaceOutList(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',): {
+ },
+ ('included',): {
+ },
+ }
+
+ @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': ([JsonApiWorkspaceOutWithLinks],), # noqa: E501
+ 'included': ([JsonApiWorkspaceOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data': 'data', # noqa: E501
+ 'included': 'included', # 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
+ """JsonApiWorkspaceOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiWorkspaceOutWithLinks]):
+
+ 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,)
+ included ([JsonApiWorkspaceOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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
+ """JsonApiWorkspaceOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiWorkspaceOutWithLinks]):
+
+ 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,)
+ included ([JsonApiWorkspaceOutWithLinks]): Included resources. [optional] # noqa: E501
+ links (ListLinks): [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_workspace_out_meta.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_meta.py
new file mode 100644
index 000000000..8035fac48
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_meta.py
@@ -0,0 +1,280 @@
+"""
+ 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_workspace_out_meta_config import JsonApiWorkspaceOutMetaConfig
+ globals()['JsonApiWorkspaceOutMetaConfig'] = JsonApiWorkspaceOutMetaConfig
+
+
+class JsonApiWorkspaceOutMeta(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 = {
+ ('permissions',): {
+ 'MANAGE': "MANAGE",
+ 'ANALYZE': "ANALYZE",
+ 'EXPORT': "EXPORT",
+ 'VIEW': "VIEW",
+ },
+ }
+
+ 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 {
+ 'config': (JsonApiWorkspaceOutMetaConfig,), # noqa: E501
+ 'permissions': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'config': 'config', # noqa: E501
+ 'permissions': 'permissions', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceOutMeta - 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,)
+ config (JsonApiWorkspaceOutMetaConfig): [optional] # noqa: E501
+ permissions ([str]): List of valid permissions for a logged user.. [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
+ """JsonApiWorkspaceOutMeta - 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,)
+ config (JsonApiWorkspaceOutMetaConfig): [optional] # noqa: E501
+ permissions ([str]): List of valid permissions for a logged user.. [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_workspace_out_meta_config.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_meta_config.py
new file mode 100644
index 000000000..7f26ca700
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_meta_config.py
@@ -0,0 +1,280 @@
+"""
+ 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 JsonApiWorkspaceOutMetaConfig(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 {
+ 'approximate_count_available': (bool,), # noqa: E501
+ 'data_sampling_available': (bool,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'approximate_count_available': 'approximateCountAvailable', # noqa: E501
+ 'data_sampling_available': 'dataSamplingAvailable', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspaceOutMetaConfig - a model defined in OpenAPI
+
+ Args:
+
+ Keyword Args:
+ approximate_count_available (bool): is approximate count enabled - based on type of data-source connected to this workspace. defaults to False # noqa: E501
+ data_sampling_available (bool): is sampling enabled - based on type of data-source connected to this workspace. defaults to False # 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,)
+ """
+
+ approximate_count_available = kwargs.get('approximate_count_available', False)
+ data_sampling_available = kwargs.get('data_sampling_available', False)
+ _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.approximate_count_available = approximate_count_available
+ self.data_sampling_available = data_sampling_available
+ 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
+ """JsonApiWorkspaceOutMetaConfig - a model defined in OpenAPI
+
+ Args:
+
+ Keyword Args:
+ approximate_count_available (bool): is approximate count enabled - based on type of data-source connected to this workspace. defaults to False # noqa: E501
+ data_sampling_available (bool): is sampling enabled - based on type of data-source connected to this workspace. defaults to False # 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,)
+ """
+
+ approximate_count_available = kwargs.get('approximate_count_available', False)
+ data_sampling_available = kwargs.get('data_sampling_available', False)
+ _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.approximate_count_available = approximate_count_available
+ self.data_sampling_available = data_sampling_available
+ 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_workspace_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_with_links.py
new file mode 100644
index 000000000..9adfff6af
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_with_links.py
@@ -0,0 +1,361 @@
+"""
+ 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_workspace_in_attributes import JsonApiWorkspaceInAttributes
+ from gooddata_api_client.model.json_api_workspace_in_relationships import JsonApiWorkspaceInRelationships
+ from gooddata_api_client.model.json_api_workspace_out import JsonApiWorkspaceOut
+ from gooddata_api_client.model.json_api_workspace_out_meta import JsonApiWorkspaceOutMeta
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiWorkspaceInAttributes'] = JsonApiWorkspaceInAttributes
+ globals()['JsonApiWorkspaceInRelationships'] = JsonApiWorkspaceInRelationships
+ globals()['JsonApiWorkspaceOut'] = JsonApiWorkspaceOut
+ globals()['JsonApiWorkspaceOutMeta'] = JsonApiWorkspaceOutMeta
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiWorkspaceOutWithLinks(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',): {
+ 'WORKSPACE': "workspace",
+ },
+ }
+
+ 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': (JsonApiWorkspaceInAttributes,), # noqa: E501
+ 'meta': (JsonApiWorkspaceOutMeta,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceInRelationships,), # 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
+ 'meta': 'meta', # noqa: E501
+ 'relationships': 'relationships', # 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
+ """JsonApiWorkspaceOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "workspace", must be one of ["workspace", ] # 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 (JsonApiWorkspaceInAttributes): [optional] # noqa: E501
+ meta (JsonApiWorkspaceOutMeta): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspace")
+ _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
+ """JsonApiWorkspaceOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "workspace", must be one of ["workspace", ] # 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 (JsonApiWorkspaceInAttributes): [optional] # noqa: E501
+ meta (JsonApiWorkspaceOutMeta): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceInRelationships): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspace")
+ _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': [
+ JsonApiWorkspaceOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_patch.py
new file mode 100644
index 000000000..9a24ccc62
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_patch.py
@@ -0,0 +1,302 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_in_attributes import JsonApiWorkspaceInAttributes
+ from gooddata_api_client.model.json_api_workspace_in_relationships import JsonApiWorkspaceInRelationships
+ globals()['JsonApiWorkspaceInAttributes'] = JsonApiWorkspaceInAttributes
+ globals()['JsonApiWorkspaceInRelationships'] = JsonApiWorkspaceInRelationships
+
+
+class JsonApiWorkspacePatch(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',): {
+ 'WORKSPACE': "workspace",
+ },
+ }
+
+ 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': (JsonApiWorkspaceInAttributes,), # noqa: E501
+ 'relationships': (JsonApiWorkspaceInRelationships,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'id': 'id', # noqa: E501
+ 'type': 'type', # noqa: E501
+ 'attributes': 'attributes', # noqa: E501
+ 'relationships': 'relationships', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
+ """JsonApiWorkspacePatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspace", must be one of ["workspace", ] # 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 (JsonApiWorkspaceInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspace")
+ _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
+ """JsonApiWorkspacePatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspace", must be one of ["workspace", ] # 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 (JsonApiWorkspaceInAttributes): [optional] # noqa: E501
+ relationships (JsonApiWorkspaceInRelationships): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspace")
+ _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_workspace_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_patch_document.py
new file mode 100644
index 000000000..b75ecb199
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_patch_document.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_workspace_patch import JsonApiWorkspacePatch
+ globals()['JsonApiWorkspacePatch'] = JsonApiWorkspacePatch
+
+
+class JsonApiWorkspacePatchDocument(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': (JsonApiWorkspacePatch,), # 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
+ """JsonApiWorkspacePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspacePatch):
+
+ 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
+ """JsonApiWorkspacePatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspacePatch):
+
+ 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_workspace_setting_in.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_in.py
new file mode 100644
index 000000000..e9ba7cc6d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_in.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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+
+
+class JsonApiWorkspaceSettingIn(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',): {
+ 'WORKSPACESETTING': "workspaceSetting",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiWorkspaceSettingIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceSetting", must be one of ["workspaceSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceSetting")
+ _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
+ """JsonApiWorkspaceSettingIn - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceSetting", must be one of ["workspaceSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceSetting")
+ _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_workspace_setting_in_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_in_document.py
new file mode 100644
index 000000000..bb9d3b3d2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_in_document.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_workspace_setting_in import JsonApiWorkspaceSettingIn
+ globals()['JsonApiWorkspaceSettingIn'] = JsonApiWorkspaceSettingIn
+
+
+class JsonApiWorkspaceSettingInDocument(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': (JsonApiWorkspaceSettingIn,), # 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
+ """JsonApiWorkspaceSettingInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceSettingIn):
+
+ 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
+ """JsonApiWorkspaceSettingInDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceSettingIn):
+
+ 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_workspace_setting_out.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_out.py
new file mode 100644
index 000000000..86dd5a3aa
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+
+
+class JsonApiWorkspaceSettingOut(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',): {
+ 'WORKSPACESETTING': "workspaceSetting",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiWorkspaceSettingOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceSetting", must be one of ["workspaceSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceSetting")
+ _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
+ """JsonApiWorkspaceSettingOut - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceSetting", must be one of ["workspaceSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceSetting")
+ _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_workspace_setting_out_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_out_document.py
new file mode 100644
index 000000000..9d7259f8e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_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_workspace_setting_out import JsonApiWorkspaceSettingOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['JsonApiWorkspaceSettingOut'] = JsonApiWorkspaceSettingOut
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class JsonApiWorkspaceSettingOutDocument(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': (JsonApiWorkspaceSettingOut,), # 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
+ """JsonApiWorkspaceSettingOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceSettingOut):
+
+ 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
+ """JsonApiWorkspaceSettingOutDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceSettingOut):
+
+ 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_workspace_setting_out_list.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_out_list.py
new file mode 100644
index 000000000..d58ef2fb3
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_out_list.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.json_api_workspace_setting_out_with_links import JsonApiWorkspaceSettingOutWithLinks
+ from gooddata_api_client.model.list_links import ListLinks
+ globals()['JsonApiWorkspaceSettingOutWithLinks'] = JsonApiWorkspaceSettingOutWithLinks
+ globals()['ListLinks'] = ListLinks
+
+
+class JsonApiWorkspaceSettingOutList(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': ([JsonApiWorkspaceSettingOutWithLinks],), # noqa: E501
+ 'links': (ListLinks,), # 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
+ """JsonApiWorkspaceSettingOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiWorkspaceSettingOutWithLinks]):
+
+ 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
+ """
+
+ _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
+ """JsonApiWorkspaceSettingOutList - a model defined in OpenAPI
+
+ Args:
+ data ([JsonApiWorkspaceSettingOutWithLinks]):
+
+ 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
+ """
+
+ _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_workspace_setting_out_with_links.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_out_with_links.py
new file mode 100644
index 000000000..b03197fdf
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ from gooddata_api_client.model.json_api_workspace_setting_out import JsonApiWorkspaceSettingOut
+ from gooddata_api_client.model.object_links import ObjectLinks
+ from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiWorkspaceSettingOut'] = JsonApiWorkspaceSettingOut
+ globals()['ObjectLinks'] = ObjectLinks
+ globals()['ObjectLinksContainer'] = ObjectLinksContainer
+
+
+class JsonApiWorkspaceSettingOutWithLinks(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',): {
+ 'WORKSPACESETTING': "workspaceSetting",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiWorkspaceSettingOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "workspaceSetting", must be one of ["workspaceSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceSetting")
+ _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
+ """JsonApiWorkspaceSettingOutWithLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ id (str): API identifier of an object
+ type (str): Object type. defaults to "workspaceSetting", must be one of ["workspaceSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ links (ObjectLinks): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceSetting")
+ _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': [
+ JsonApiWorkspaceSettingOut,
+ ObjectLinksContainer,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_patch.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_patch.py
new file mode 100644
index 000000000..553442b60
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_patch.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_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+ globals()['JsonApiOrganizationSettingInAttributes'] = JsonApiOrganizationSettingInAttributes
+
+
+class JsonApiWorkspaceSettingPatch(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',): {
+ 'WORKSPACESETTING': "workspaceSetting",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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': (JsonApiOrganizationSettingInAttributes,), # 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
+ """JsonApiWorkspaceSettingPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceSetting", must be one of ["workspaceSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceSetting")
+ _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
+ """JsonApiWorkspaceSettingPatch - a model defined in OpenAPI
+
+ Args:
+ id (str): API identifier of an object
+
+ Keyword Args:
+ type (str): Object type. defaults to "workspaceSetting", must be one of ["workspaceSetting", ] # 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 (JsonApiOrganizationSettingInAttributes): [optional] # noqa: E501
+ """
+
+ type = kwargs.get('type', "workspaceSetting")
+ _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_workspace_setting_patch_document.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_patch_document.py
new file mode 100644
index 000000000..e72c1d82c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_setting_patch_document.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_workspace_setting_patch import JsonApiWorkspaceSettingPatch
+ globals()['JsonApiWorkspaceSettingPatch'] = JsonApiWorkspaceSettingPatch
+
+
+class JsonApiWorkspaceSettingPatchDocument(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': (JsonApiWorkspaceSettingPatch,), # 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
+ """JsonApiWorkspaceSettingPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceSettingPatch):
+
+ 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
+ """JsonApiWorkspaceSettingPatchDocument - a model defined in OpenAPI
+
+ Args:
+ data (JsonApiWorkspaceSettingPatch):
+
+ 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_workspace_to_one_linkage.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_to_one_linkage.py
new file mode 100644
index 000000000..c7354fee0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_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_workspace_linkage import JsonApiWorkspaceLinkage
+ globals()['JsonApiWorkspaceLinkage'] = JsonApiWorkspaceLinkage
+
+
+class JsonApiWorkspaceToOneLinkage(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',): {
+ 'WORKSPACE': "workspace",
+ },
+ }
+
+ 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
+ """JsonApiWorkspaceToOneLinkage - 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 "workspace" # 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
+ """JsonApiWorkspaceToOneLinkage - 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 "workspace" # 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': [
+ JsonApiWorkspaceLinkage,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/label_identifier.py b/gooddata-api-client/gooddata_api_client/model/label_identifier.py
new file mode 100644
index 000000000..7579289ec
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/label_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 LabelIdentifier(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',): {
+ 'LABEL': "label",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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
+ """LabelIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Label ID.
+
+ Keyword Args:
+ type (str): A type of the label.. defaults to "label", must be one of ["label", ] # 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', "label")
+ _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
+ """LabelIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Label ID.
+
+ Keyword Args:
+ type (str): A type of the label.. defaults to "label", must be one of ["label", ] # 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', "label")
+ _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/list_links.py b/gooddata-api-client/gooddata_api_client/model/list_links.py
new file mode 100644
index 000000000..13b32bdc8
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/list_links.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.list_links_all_of import ListLinksAllOf
+ from gooddata_api_client.model.object_links import ObjectLinks
+ globals()['ListLinksAllOf'] = ListLinksAllOf
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class ListLinks(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ '_self': (str,), # noqa: E501
+ 'next': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ '_self': 'self', # noqa: E501
+ 'next': 'next', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """ListLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ _self (str): A string containing the link's URL.
+ _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,)
+ next (str): A string containing the link's URL for the next page of data.. [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
+ """ListLinks - a model defined in OpenAPI
+
+ Keyword Args:
+ _self (str): A string containing the link's URL.
+ _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,)
+ next (str): A string containing the link's URL for the next page of data.. [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': [
+ ListLinksAllOf,
+ ObjectLinks,
+ ],
+ 'oneOf': [
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/list_links_all_of.py b/gooddata-api-client/gooddata_api_client/model/list_links_all_of.py
new file mode 100644
index 000000000..b309bc22b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/list_links_all_of.py
@@ -0,0 +1,264 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class ListLinksAllOf(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 {
+ 'next': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'next': 'next', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """ListLinksAllOf - 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,)
+ next (str): A string containing the link's URL for the next page of data.. [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
+ """ListLinksAllOf - 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,)
+ next (str): A string containing the link's URL for the next page of data.. [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/measure_definition.py b/gooddata-api-client/gooddata_api_client/model/measure_definition.py
new file mode 100644
index 000000000..e7d2b88db
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/measure_definition.py
@@ -0,0 +1,355 @@
+"""
+ 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.arithmetic_measure_definition import ArithmeticMeasureDefinition
+ from gooddata_api_client.model.arithmetic_measure_definition_arithmetic_measure import ArithmeticMeasureDefinitionArithmeticMeasure
+ from gooddata_api_client.model.inline_measure_definition import InlineMeasureDefinition
+ from gooddata_api_client.model.inline_measure_definition_inline import InlineMeasureDefinitionInline
+ from gooddata_api_client.model.pop_dataset_measure_definition_previous_period_measure import PopDatasetMeasureDefinitionPreviousPeriodMeasure
+ from gooddata_api_client.model.pop_date_measure_definition_over_period_measure import PopDateMeasureDefinitionOverPeriodMeasure
+ from gooddata_api_client.model.pop_measure_definition import PopMeasureDefinition
+ from gooddata_api_client.model.simple_measure_definition import SimpleMeasureDefinition
+ from gooddata_api_client.model.simple_measure_definition_measure import SimpleMeasureDefinitionMeasure
+ globals()['ArithmeticMeasureDefinition'] = ArithmeticMeasureDefinition
+ globals()['ArithmeticMeasureDefinitionArithmeticMeasure'] = ArithmeticMeasureDefinitionArithmeticMeasure
+ globals()['InlineMeasureDefinition'] = InlineMeasureDefinition
+ globals()['InlineMeasureDefinitionInline'] = InlineMeasureDefinitionInline
+ globals()['PopDatasetMeasureDefinitionPreviousPeriodMeasure'] = PopDatasetMeasureDefinitionPreviousPeriodMeasure
+ globals()['PopDateMeasureDefinitionOverPeriodMeasure'] = PopDateMeasureDefinitionOverPeriodMeasure
+ globals()['PopMeasureDefinition'] = PopMeasureDefinition
+ globals()['SimpleMeasureDefinition'] = SimpleMeasureDefinition
+ globals()['SimpleMeasureDefinitionMeasure'] = SimpleMeasureDefinitionMeasure
+
+
+class MeasureDefinition(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'inline': (InlineMeasureDefinitionInline,), # noqa: E501
+ 'arithmetic_measure': (ArithmeticMeasureDefinitionArithmeticMeasure,), # noqa: E501
+ 'measure': (SimpleMeasureDefinitionMeasure,), # noqa: E501
+ 'previous_period_measure': (PopDatasetMeasureDefinitionPreviousPeriodMeasure,), # noqa: E501
+ 'over_period_measure': (PopDateMeasureDefinitionOverPeriodMeasure,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'inline': 'inline', # noqa: E501
+ 'arithmetic_measure': 'arithmeticMeasure', # noqa: E501
+ 'measure': 'measure', # noqa: E501
+ 'previous_period_measure': 'previousPeriodMeasure', # noqa: E501
+ 'over_period_measure': 'overPeriodMeasure', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """MeasureDefinition - 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,)
+ inline (InlineMeasureDefinitionInline): [optional] # noqa: E501
+ arithmetic_measure (ArithmeticMeasureDefinitionArithmeticMeasure): [optional] # noqa: E501
+ measure (SimpleMeasureDefinitionMeasure): [optional] # noqa: E501
+ previous_period_measure (PopDatasetMeasureDefinitionPreviousPeriodMeasure): [optional] # noqa: E501
+ over_period_measure (PopDateMeasureDefinitionOverPeriodMeasure): [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
+ """MeasureDefinition - 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,)
+ inline (InlineMeasureDefinitionInline): [optional] # noqa: E501
+ arithmetic_measure (ArithmeticMeasureDefinitionArithmeticMeasure): [optional] # noqa: E501
+ measure (SimpleMeasureDefinitionMeasure): [optional] # noqa: E501
+ previous_period_measure (PopDatasetMeasureDefinitionPreviousPeriodMeasure): [optional] # noqa: E501
+ over_period_measure (PopDateMeasureDefinitionOverPeriodMeasure): [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': [
+ ArithmeticMeasureDefinition,
+ InlineMeasureDefinition,
+ PopMeasureDefinition,
+ SimpleMeasureDefinition,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/measure_execution_result_header.py b/gooddata-api-client/gooddata_api_client/model/measure_execution_result_header.py
new file mode 100644
index 000000000..cd6c98894
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/measure_execution_result_header.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.measure_result_header import MeasureResultHeader
+ globals()['MeasureResultHeader'] = MeasureResultHeader
+
+
+class MeasureExecutionResultHeader(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 {
+ 'measure_header': (MeasureResultHeader,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'measure_header': 'measureHeader', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, measure_header, *args, **kwargs): # noqa: E501
+ """MeasureExecutionResultHeader - a model defined in OpenAPI
+
+ Args:
+ measure_header (MeasureResultHeader):
+
+ 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.measure_header = measure_header
+ 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, measure_header, *args, **kwargs): # noqa: E501
+ """MeasureExecutionResultHeader - a model defined in OpenAPI
+
+ Args:
+ measure_header (MeasureResultHeader):
+
+ 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.measure_header = measure_header
+ 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/measure_group_headers.py b/gooddata-api-client/gooddata_api_client/model/measure_group_headers.py
new file mode 100644
index 000000000..079c111de
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/measure_group_headers.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.measure_header_out import MeasureHeaderOut
+ globals()['MeasureHeaderOut'] = MeasureHeaderOut
+
+
+class MeasureGroupHeaders(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 {
+ 'measure_group_headers': ([MeasureHeaderOut],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'measure_group_headers': 'measureGroupHeaders', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """MeasureGroupHeaders - 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,)
+ measure_group_headers ([MeasureHeaderOut]): [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
+ """MeasureGroupHeaders - 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,)
+ measure_group_headers ([MeasureHeaderOut]): [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/measure_header_out.py b/gooddata-api-client/gooddata_api_client/model/measure_header_out.py
new file mode 100644
index 000000000..d0e9e3df0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/measure_header_out.py
@@ -0,0 +1,278 @@
+"""
+ 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 MeasureHeaderOut(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 {
+ 'local_identifier': (str,), # noqa: E501
+ 'format': (str,), # noqa: E501
+ 'name': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'local_identifier': 'localIdentifier', # noqa: E501
+ 'format': 'format', # noqa: E501
+ 'name': 'name', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, local_identifier, *args, **kwargs): # noqa: E501
+ """MeasureHeaderOut - a model defined in OpenAPI
+
+ Args:
+ local_identifier (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,)
+ format (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.local_identifier = local_identifier
+ 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, local_identifier, *args, **kwargs): # noqa: E501
+ """MeasureHeaderOut - a model defined in OpenAPI
+
+ Args:
+ local_identifier (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,)
+ format (str): [optional] # noqa: E501
+ name (str): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.local_identifier = local_identifier
+ 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/measure_item.py b/gooddata-api-client/gooddata_api_client/model/measure_item.py
new file mode 100644
index 000000000..0ca6ff86a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/measure_item.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.measure_definition import MeasureDefinition
+ globals()['MeasureDefinition'] = MeasureDefinition
+
+
+class MeasureItem(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 = {
+ ('local_identifier',): {
+ 'regex': {
+ 'pattern': r'^[.a-zA-Z0-9_-]+$', # 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 {
+ 'definition': (MeasureDefinition,), # noqa: E501
+ 'local_identifier': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'definition': 'definition', # noqa: E501
+ 'local_identifier': 'localIdentifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, definition, local_identifier, *args, **kwargs): # noqa: E501
+ """MeasureItem - a model defined in OpenAPI
+
+ Args:
+ definition (MeasureDefinition):
+ local_identifier (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.definition = definition
+ self.local_identifier = local_identifier
+ 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, definition, local_identifier, *args, **kwargs): # noqa: E501
+ """MeasureItem - a model defined in OpenAPI
+
+ Args:
+ definition (MeasureDefinition):
+ local_identifier (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.definition = definition
+ self.local_identifier = local_identifier
+ 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/measure_result_header.py b/gooddata-api-client/gooddata_api_client/model/measure_result_header.py
new file mode 100644
index 000000000..b8e2f86ab
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/measure_result_header.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 MeasureResultHeader(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 {
+ 'measure_index': (int,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'measure_index': 'measureIndex', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, measure_index, *args, **kwargs): # noqa: E501
+ """MeasureResultHeader - a model defined in OpenAPI
+
+ Args:
+ measure_index (int): Metric index. Starts at 0.
+
+ 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.measure_index = measure_index
+ 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, measure_index, *args, **kwargs): # noqa: E501
+ """MeasureResultHeader - a model defined in OpenAPI
+
+ Args:
+ measure_index (int): Metric index. Starts at 0.
+
+ 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.measure_index = measure_index
+ 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/measure_value_filter.py b/gooddata-api-client/gooddata_api_client/model/measure_value_filter.py
new file mode 100644
index 000000000..559a24513
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/measure_value_filter.py
@@ -0,0 +1,331 @@
+"""
+ 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.comparison_measure_value_filter import ComparisonMeasureValueFilter
+ from gooddata_api_client.model.comparison_measure_value_filter_comparison_measure_value_filter import ComparisonMeasureValueFilterComparisonMeasureValueFilter
+ from gooddata_api_client.model.range_measure_value_filter import RangeMeasureValueFilter
+ from gooddata_api_client.model.range_measure_value_filter_range_measure_value_filter import RangeMeasureValueFilterRangeMeasureValueFilter
+ globals()['ComparisonMeasureValueFilter'] = ComparisonMeasureValueFilter
+ globals()['ComparisonMeasureValueFilterComparisonMeasureValueFilter'] = ComparisonMeasureValueFilterComparisonMeasureValueFilter
+ globals()['RangeMeasureValueFilter'] = RangeMeasureValueFilter
+ globals()['RangeMeasureValueFilterRangeMeasureValueFilter'] = RangeMeasureValueFilterRangeMeasureValueFilter
+
+
+class MeasureValueFilter(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'comparison_measure_value_filter': (ComparisonMeasureValueFilterComparisonMeasureValueFilter,), # noqa: E501
+ 'range_measure_value_filter': (RangeMeasureValueFilterRangeMeasureValueFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'comparison_measure_value_filter': 'comparisonMeasureValueFilter', # noqa: E501
+ 'range_measure_value_filter': 'rangeMeasureValueFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """MeasureValueFilter - 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
+ """
+
+ _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
+ """MeasureValueFilter - 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
+ """
+
+ _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': [
+ ComparisonMeasureValueFilter,
+ RangeMeasureValueFilter,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/negative_attribute_filter.py b/gooddata-api-client/gooddata_api_client/model/negative_attribute_filter.py
new file mode 100644
index 000000000..1fbcbcfbb
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/negative_attribute_filter.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.negative_attribute_filter_negative_attribute_filter import NegativeAttributeFilterNegativeAttributeFilter
+ globals()['NegativeAttributeFilterNegativeAttributeFilter'] = NegativeAttributeFilterNegativeAttributeFilter
+
+
+class NegativeAttributeFilter(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 {
+ 'negative_attribute_filter': (NegativeAttributeFilterNegativeAttributeFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'negative_attribute_filter': 'negativeAttributeFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, negative_attribute_filter, *args, **kwargs): # noqa: E501
+ """NegativeAttributeFilter - a model defined in OpenAPI
+
+ Args:
+ negative_attribute_filter (NegativeAttributeFilterNegativeAttributeFilter):
+
+ 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.negative_attribute_filter = negative_attribute_filter
+ 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, negative_attribute_filter, *args, **kwargs): # noqa: E501
+ """NegativeAttributeFilter - a model defined in OpenAPI
+
+ Args:
+ negative_attribute_filter (NegativeAttributeFilterNegativeAttributeFilter):
+
+ 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.negative_attribute_filter = negative_attribute_filter
+ 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/negative_attribute_filter_negative_attribute_filter.py b/gooddata-api-client/gooddata_api_client/model/negative_attribute_filter_negative_attribute_filter.py
new file mode 100644
index 000000000..94a709b0d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/negative_attribute_filter_negative_attribute_filter.py
@@ -0,0 +1,288 @@
+"""
+ 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.afm_identifier import AfmIdentifier
+ from gooddata_api_client.model.attribute_filter_elements import AttributeFilterElements
+ globals()['AfmIdentifier'] = AfmIdentifier
+ globals()['AttributeFilterElements'] = AttributeFilterElements
+
+
+class NegativeAttributeFilterNegativeAttributeFilter(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 {
+ 'label': (AfmIdentifier,), # noqa: E501
+ 'not_in': (AttributeFilterElements,), # noqa: E501
+ 'apply_on_result': (bool,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'label': 'label', # noqa: E501
+ 'not_in': 'notIn', # noqa: E501
+ 'apply_on_result': 'applyOnResult', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, label, not_in, *args, **kwargs): # noqa: E501
+ """NegativeAttributeFilterNegativeAttributeFilter - a model defined in OpenAPI
+
+ Args:
+ label (AfmIdentifier):
+ not_in (AttributeFilterElements):
+
+ 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,)
+ apply_on_result (bool): [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.label = label
+ self.not_in = not_in
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, label, not_in, *args, **kwargs): # noqa: E501
+ """NegativeAttributeFilterNegativeAttributeFilter - a model defined in OpenAPI
+
+ Args:
+ label (AfmIdentifier):
+ not_in (AttributeFilterElements):
+
+ 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,)
+ apply_on_result (bool): [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.label = label
+ self.not_in = not_in
+ 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/object_links.py b/gooddata-api-client/gooddata_api_client/model/object_links.py
new file mode 100644
index 000000000..2b05b6b58
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/object_links.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 ObjectLinks(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 {
+ '_self': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ '_self': 'self', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, _self, *args, **kwargs): # noqa: E501
+ """ObjectLinks - a model defined in OpenAPI
+
+ Args:
+ _self (str): A string containing the link's URL.
+
+ 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._self = _self
+ 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, _self, *args, **kwargs): # noqa: E501
+ """ObjectLinks - a model defined in OpenAPI
+
+ Args:
+ _self (str): A string containing the link's URL.
+
+ 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._self = _self
+ 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/object_links_container.py b/gooddata-api-client/gooddata_api_client/model/object_links_container.py
new file mode 100644
index 000000000..db0b8efc2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/object_links_container.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.object_links import ObjectLinks
+ globals()['ObjectLinks'] = ObjectLinks
+
+
+class ObjectLinksContainer(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 {
+ 'links': (ObjectLinks,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'links': 'links', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """ObjectLinksContainer - 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,)
+ 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__,)
+
+ 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
+ """ObjectLinksContainer - 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,)
+ 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__,)
+
+ 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/paging.py b/gooddata-api-client/gooddata_api_client/model/paging.py
new file mode 100644
index 000000000..ee9452d33
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/paging.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 Paging(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 {
+ 'count': (int,), # noqa: E501
+ 'offset': (int,), # noqa: E501
+ 'total': (int,), # noqa: E501
+ 'next': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'count': 'count', # noqa: E501
+ 'offset': 'offset', # noqa: E501
+ 'total': 'total', # noqa: E501
+ 'next': 'next', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, count, offset, total, *args, **kwargs): # noqa: E501
+ """Paging - a model defined in OpenAPI
+
+ Args:
+ count (int): Count of items in this page.
+ offset (int): Offset of this page.
+ total (int): Count of returnable items ignoring paging.
+
+ 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,)
+ next (str): Link to next page, or null if this is last page.. [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.count = count
+ self.offset = offset
+ self.total = total
+ 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, count, offset, total, *args, **kwargs): # noqa: E501
+ """Paging - a model defined in OpenAPI
+
+ Args:
+ count (int): Count of items in this page.
+ offset (int): Offset of this page.
+ total (int): Count of returnable items ignoring paging.
+
+ 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,)
+ next (str): Link to next page, or null if this is last page.. [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.count = count
+ self.offset = offset
+ self.total = total
+ 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/parameter.py b/gooddata-api-client/gooddata_api_client/model/parameter.py
new file mode 100644
index 000000000..b727cb29f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/parameter.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 Parameter(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 {
+ 'name': (str,), # noqa: E501
+ 'value': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'value': 'value', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, value, *args, **kwargs): # noqa: E501
+ """Parameter - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ 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.name = name
+ 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, name, value, *args, **kwargs): # noqa: E501
+ """Parameter - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ 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.name = name
+ 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/platform_usage.py b/gooddata-api-client/gooddata_api_client/model/platform_usage.py
new file mode 100644
index 000000000..c7177d50a
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/platform_usage.py
@@ -0,0 +1,278 @@
+"""
+ 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 PlatformUsage(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 = {
+ ('name',): {
+ 'USERCOUNT': "UserCount",
+ 'WORKSPACECOUNT': "WorkspaceCount",
+ },
+ }
+
+ 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 {
+ 'name': (str,), # noqa: E501
+ 'count': (int,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'count': 'count', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, *args, **kwargs): # noqa: E501
+ """PlatformUsage - a model defined in OpenAPI
+
+ Args:
+ name (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,)
+ count (int): [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.name = name
+ 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, name, *args, **kwargs): # noqa: E501
+ """PlatformUsage - a model defined in OpenAPI
+
+ Args:
+ name (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,)
+ count (int): [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.name = name
+ 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/platform_usage_request.py b/gooddata-api-client/gooddata_api_client/model/platform_usage_request.py
new file mode 100644
index 000000000..8567f3944
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/platform_usage_request.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class PlatformUsageRequest(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 = {
+ ('usage_item_names',): {
+ 'USERCOUNT': "UserCount",
+ 'WORKSPACECOUNT': "WorkspaceCount",
+ },
+ }
+
+ validations = {
+ ('usage_item_names',): {
+ },
+ }
+
+ @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 {
+ 'usage_item_names': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'usage_item_names': 'usageItemNames', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, usage_item_names, *args, **kwargs): # noqa: E501
+ """PlatformUsageRequest - a model defined in OpenAPI
+
+ Args:
+ usage_item_names ([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.usage_item_names = usage_item_names
+ 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, usage_item_names, *args, **kwargs): # noqa: E501
+ """PlatformUsageRequest - a model defined in OpenAPI
+
+ Args:
+ usage_item_names ([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.usage_item_names = usage_item_names
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/pop_dataset.py b/gooddata-api-client/gooddata_api_client/model/pop_dataset.py
new file mode 100644
index 000000000..af8006a3c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/pop_dataset.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.afm_object_identifier_dataset import AfmObjectIdentifierDataset
+ globals()['AfmObjectIdentifierDataset'] = AfmObjectIdentifierDataset
+
+
+class PopDataset(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 {
+ 'dataset': (AfmObjectIdentifierDataset,), # noqa: E501
+ 'periods_ago': (int,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'dataset': 'dataset', # noqa: E501
+ 'periods_ago': 'periodsAgo', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, dataset, periods_ago, *args, **kwargs): # noqa: E501
+ """PopDataset - a model defined in OpenAPI
+
+ Args:
+ dataset (AfmObjectIdentifierDataset):
+ periods_ago (int):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.dataset = dataset
+ self.periods_ago = periods_ago
+ 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, dataset, periods_ago, *args, **kwargs): # noqa: E501
+ """PopDataset - a model defined in OpenAPI
+
+ Args:
+ dataset (AfmObjectIdentifierDataset):
+ periods_ago (int):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.dataset = dataset
+ self.periods_ago = periods_ago
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition.py b/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition.py
new file mode 100644
index 000000000..02ffe0b97
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition.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.pop_dataset_measure_definition_previous_period_measure import PopDatasetMeasureDefinitionPreviousPeriodMeasure
+ globals()['PopDatasetMeasureDefinitionPreviousPeriodMeasure'] = PopDatasetMeasureDefinitionPreviousPeriodMeasure
+
+
+class PopDatasetMeasureDefinition(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 {
+ 'previous_period_measure': (PopDatasetMeasureDefinitionPreviousPeriodMeasure,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'previous_period_measure': 'previousPeriodMeasure', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, previous_period_measure, *args, **kwargs): # noqa: E501
+ """PopDatasetMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ previous_period_measure (PopDatasetMeasureDefinitionPreviousPeriodMeasure):
+
+ 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.previous_period_measure = previous_period_measure
+ 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, previous_period_measure, *args, **kwargs): # noqa: E501
+ """PopDatasetMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ previous_period_measure (PopDatasetMeasureDefinitionPreviousPeriodMeasure):
+
+ 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.previous_period_measure = previous_period_measure
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition_previous_period_measure.py b/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition_previous_period_measure.py
new file mode 100644
index 000000000..5f21d7b6c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/pop_dataset_measure_definition_previous_period_measure.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.afm_local_identifier import AfmLocalIdentifier
+ from gooddata_api_client.model.pop_dataset import PopDataset
+ globals()['AfmLocalIdentifier'] = AfmLocalIdentifier
+ globals()['PopDataset'] = PopDataset
+
+
+class PopDatasetMeasureDefinitionPreviousPeriodMeasure(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 {
+ 'date_datasets': ([PopDataset],), # noqa: E501
+ 'measure_identifier': (AfmLocalIdentifier,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'date_datasets': 'dateDatasets', # noqa: E501
+ 'measure_identifier': 'measureIdentifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, date_datasets, measure_identifier, *args, **kwargs): # noqa: E501
+ """PopDatasetMeasureDefinitionPreviousPeriodMeasure - a model defined in OpenAPI
+
+ Args:
+ date_datasets ([PopDataset]):
+ measure_identifier (AfmLocalIdentifier):
+
+ 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.date_datasets = date_datasets
+ self.measure_identifier = measure_identifier
+ 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, date_datasets, measure_identifier, *args, **kwargs): # noqa: E501
+ """PopDatasetMeasureDefinitionPreviousPeriodMeasure - a model defined in OpenAPI
+
+ Args:
+ date_datasets ([PopDataset]):
+ measure_identifier (AfmLocalIdentifier):
+
+ 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.date_datasets = date_datasets
+ self.measure_identifier = measure_identifier
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/pop_date.py b/gooddata-api-client/gooddata_api_client/model/pop_date.py
new file mode 100644
index 000000000..05396c4df
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/pop_date.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.afm_object_identifier_attribute import AfmObjectIdentifierAttribute
+ globals()['AfmObjectIdentifierAttribute'] = AfmObjectIdentifierAttribute
+
+
+class PopDate(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 {
+ 'attribute': (AfmObjectIdentifierAttribute,), # noqa: E501
+ 'periods_ago': (int,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attribute': 'attribute', # noqa: E501
+ 'periods_ago': 'periodsAgo', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attribute, periods_ago, *args, **kwargs): # noqa: E501
+ """PopDate - a model defined in OpenAPI
+
+ Args:
+ attribute (AfmObjectIdentifierAttribute):
+ periods_ago (int):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.attribute = attribute
+ self.periods_ago = periods_ago
+ 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, attribute, periods_ago, *args, **kwargs): # noqa: E501
+ """PopDate - a model defined in OpenAPI
+
+ Args:
+ attribute (AfmObjectIdentifierAttribute):
+ periods_ago (int):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.attribute = attribute
+ self.periods_ago = periods_ago
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition.py b/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition.py
new file mode 100644
index 000000000..dd97d169d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition.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.pop_date_measure_definition_over_period_measure import PopDateMeasureDefinitionOverPeriodMeasure
+ globals()['PopDateMeasureDefinitionOverPeriodMeasure'] = PopDateMeasureDefinitionOverPeriodMeasure
+
+
+class PopDateMeasureDefinition(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 {
+ 'over_period_measure': (PopDateMeasureDefinitionOverPeriodMeasure,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'over_period_measure': 'overPeriodMeasure', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, over_period_measure, *args, **kwargs): # noqa: E501
+ """PopDateMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ over_period_measure (PopDateMeasureDefinitionOverPeriodMeasure):
+
+ 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.over_period_measure = over_period_measure
+ 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, over_period_measure, *args, **kwargs): # noqa: E501
+ """PopDateMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ over_period_measure (PopDateMeasureDefinitionOverPeriodMeasure):
+
+ 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.over_period_measure = over_period_measure
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition_over_period_measure.py b/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition_over_period_measure.py
new file mode 100644
index 000000000..9ca812f6c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/pop_date_measure_definition_over_period_measure.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.afm_local_identifier import AfmLocalIdentifier
+ from gooddata_api_client.model.pop_date import PopDate
+ globals()['AfmLocalIdentifier'] = AfmLocalIdentifier
+ globals()['PopDate'] = PopDate
+
+
+class PopDateMeasureDefinitionOverPeriodMeasure(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 {
+ 'date_attributes': ([PopDate],), # noqa: E501
+ 'measure_identifier': (AfmLocalIdentifier,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'date_attributes': 'dateAttributes', # noqa: E501
+ 'measure_identifier': 'measureIdentifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, date_attributes, measure_identifier, *args, **kwargs): # noqa: E501
+ """PopDateMeasureDefinitionOverPeriodMeasure - a model defined in OpenAPI
+
+ Args:
+ date_attributes ([PopDate]):
+ measure_identifier (AfmLocalIdentifier):
+
+ 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.date_attributes = date_attributes
+ self.measure_identifier = measure_identifier
+ 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, date_attributes, measure_identifier, *args, **kwargs): # noqa: E501
+ """PopDateMeasureDefinitionOverPeriodMeasure - a model defined in OpenAPI
+
+ Args:
+ date_attributes ([PopDate]):
+ measure_identifier (AfmLocalIdentifier):
+
+ 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.date_attributes = date_attributes
+ self.measure_identifier = measure_identifier
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/pop_measure_definition.py b/gooddata-api-client/gooddata_api_client/model/pop_measure_definition.py
new file mode 100644
index 000000000..c2f162062
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/pop_measure_definition.py
@@ -0,0 +1,331 @@
+"""
+ 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.pop_dataset_measure_definition import PopDatasetMeasureDefinition
+ from gooddata_api_client.model.pop_dataset_measure_definition_previous_period_measure import PopDatasetMeasureDefinitionPreviousPeriodMeasure
+ from gooddata_api_client.model.pop_date_measure_definition import PopDateMeasureDefinition
+ from gooddata_api_client.model.pop_date_measure_definition_over_period_measure import PopDateMeasureDefinitionOverPeriodMeasure
+ globals()['PopDatasetMeasureDefinition'] = PopDatasetMeasureDefinition
+ globals()['PopDatasetMeasureDefinitionPreviousPeriodMeasure'] = PopDatasetMeasureDefinitionPreviousPeriodMeasure
+ globals()['PopDateMeasureDefinition'] = PopDateMeasureDefinition
+ globals()['PopDateMeasureDefinitionOverPeriodMeasure'] = PopDateMeasureDefinitionOverPeriodMeasure
+
+
+class PopMeasureDefinition(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'previous_period_measure': (PopDatasetMeasureDefinitionPreviousPeriodMeasure,), # noqa: E501
+ 'over_period_measure': (PopDateMeasureDefinitionOverPeriodMeasure,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'previous_period_measure': 'previousPeriodMeasure', # noqa: E501
+ 'over_period_measure': 'overPeriodMeasure', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """PopMeasureDefinition - 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,)
+ previous_period_measure (PopDatasetMeasureDefinitionPreviousPeriodMeasure): [optional] # noqa: E501
+ over_period_measure (PopDateMeasureDefinitionOverPeriodMeasure): [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
+ """PopMeasureDefinition - 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,)
+ previous_period_measure (PopDatasetMeasureDefinitionPreviousPeriodMeasure): [optional] # noqa: E501
+ over_period_measure (PopDateMeasureDefinitionOverPeriodMeasure): [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': [
+ PopDatasetMeasureDefinition,
+ PopDateMeasureDefinition,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/positive_attribute_filter.py b/gooddata-api-client/gooddata_api_client/model/positive_attribute_filter.py
new file mode 100644
index 000000000..8699c8a95
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/positive_attribute_filter.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.positive_attribute_filter_positive_attribute_filter import PositiveAttributeFilterPositiveAttributeFilter
+ globals()['PositiveAttributeFilterPositiveAttributeFilter'] = PositiveAttributeFilterPositiveAttributeFilter
+
+
+class PositiveAttributeFilter(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 {
+ 'positive_attribute_filter': (PositiveAttributeFilterPositiveAttributeFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'positive_attribute_filter': 'positiveAttributeFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, positive_attribute_filter, *args, **kwargs): # noqa: E501
+ """PositiveAttributeFilter - a model defined in OpenAPI
+
+ Args:
+ positive_attribute_filter (PositiveAttributeFilterPositiveAttributeFilter):
+
+ 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.positive_attribute_filter = positive_attribute_filter
+ 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, positive_attribute_filter, *args, **kwargs): # noqa: E501
+ """PositiveAttributeFilter - a model defined in OpenAPI
+
+ Args:
+ positive_attribute_filter (PositiveAttributeFilterPositiveAttributeFilter):
+
+ 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.positive_attribute_filter = positive_attribute_filter
+ 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/positive_attribute_filter_positive_attribute_filter.py b/gooddata-api-client/gooddata_api_client/model/positive_attribute_filter_positive_attribute_filter.py
new file mode 100644
index 000000000..2a549b19c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/positive_attribute_filter_positive_attribute_filter.py
@@ -0,0 +1,288 @@
+"""
+ 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.afm_identifier import AfmIdentifier
+ from gooddata_api_client.model.attribute_filter_elements import AttributeFilterElements
+ globals()['AfmIdentifier'] = AfmIdentifier
+ globals()['AttributeFilterElements'] = AttributeFilterElements
+
+
+class PositiveAttributeFilterPositiveAttributeFilter(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 {
+ '_in': (AttributeFilterElements,), # noqa: E501
+ 'label': (AfmIdentifier,), # noqa: E501
+ 'apply_on_result': (bool,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ '_in': 'in', # noqa: E501
+ 'label': 'label', # noqa: E501
+ 'apply_on_result': 'applyOnResult', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, _in, label, *args, **kwargs): # noqa: E501
+ """PositiveAttributeFilterPositiveAttributeFilter - a model defined in OpenAPI
+
+ Args:
+ _in (AttributeFilterElements):
+ label (AfmIdentifier):
+
+ 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,)
+ apply_on_result (bool): [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._in = _in
+ self.label = label
+ 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, _in, label, *args, **kwargs): # noqa: E501
+ """PositiveAttributeFilterPositiveAttributeFilter - a model defined in OpenAPI
+
+ Args:
+ _in (AttributeFilterElements):
+ label (AfmIdentifier):
+
+ 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,)
+ apply_on_result (bool): [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._in = _in
+ self.label = label
+ 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/range_measure_value_filter.py b/gooddata-api-client/gooddata_api_client/model/range_measure_value_filter.py
new file mode 100644
index 000000000..61e176497
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/range_measure_value_filter.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.range_measure_value_filter_range_measure_value_filter import RangeMeasureValueFilterRangeMeasureValueFilter
+ globals()['RangeMeasureValueFilterRangeMeasureValueFilter'] = RangeMeasureValueFilterRangeMeasureValueFilter
+
+
+class RangeMeasureValueFilter(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 {
+ 'range_measure_value_filter': (RangeMeasureValueFilterRangeMeasureValueFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'range_measure_value_filter': 'rangeMeasureValueFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, range_measure_value_filter, *args, **kwargs): # noqa: E501
+ """RangeMeasureValueFilter - a model defined in OpenAPI
+
+ Args:
+ range_measure_value_filter (RangeMeasureValueFilterRangeMeasureValueFilter):
+
+ 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.range_measure_value_filter = range_measure_value_filter
+ 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, range_measure_value_filter, *args, **kwargs): # noqa: E501
+ """RangeMeasureValueFilter - a model defined in OpenAPI
+
+ Args:
+ range_measure_value_filter (RangeMeasureValueFilterRangeMeasureValueFilter):
+
+ 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.range_measure_value_filter = range_measure_value_filter
+ 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/range_measure_value_filter_range_measure_value_filter.py b/gooddata-api-client/gooddata_api_client/model/range_measure_value_filter_range_measure_value_filter.py
new file mode 100644
index 000000000..ec955cabf
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/range_measure_value_filter_range_measure_value_filter.py
@@ -0,0 +1,306 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.afm_identifier import AfmIdentifier
+ globals()['AfmIdentifier'] = AfmIdentifier
+
+
+class RangeMeasureValueFilterRangeMeasureValueFilter(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 = {
+ ('operator',): {
+ 'BETWEEN': "BETWEEN",
+ 'NOT_BETWEEN': "NOT_BETWEEN",
+ },
+ }
+
+ 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 {
+ '_from': (float,), # noqa: E501
+ 'measure': (AfmIdentifier,), # noqa: E501
+ 'operator': (str,), # noqa: E501
+ 'to': (float,), # noqa: E501
+ 'apply_on_result': (bool,), # noqa: E501
+ 'treat_null_values_as': (float,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ '_from': 'from', # noqa: E501
+ 'measure': 'measure', # noqa: E501
+ 'operator': 'operator', # noqa: E501
+ 'to': 'to', # noqa: E501
+ 'apply_on_result': 'applyOnResult', # noqa: E501
+ 'treat_null_values_as': 'treatNullValuesAs', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, _from, measure, operator, to, *args, **kwargs): # noqa: E501
+ """RangeMeasureValueFilterRangeMeasureValueFilter - a model defined in OpenAPI
+
+ Args:
+ _from (float):
+ measure (AfmIdentifier):
+ operator (str):
+ to (float):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ apply_on_result (bool): [optional] # noqa: E501
+ treat_null_values_as (float): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self._from = _from
+ self.measure = measure
+ self.operator = operator
+ self.to = to
+ 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, _from, measure, operator, to, *args, **kwargs): # noqa: E501
+ """RangeMeasureValueFilterRangeMeasureValueFilter - a model defined in OpenAPI
+
+ Args:
+ _from (float):
+ measure (AfmIdentifier):
+ operator (str):
+ to (float):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ apply_on_result (bool): [optional] # noqa: E501
+ treat_null_values_as (float): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self._from = _from
+ self.measure = measure
+ self.operator = operator
+ self.to = to
+ 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/ranking_filter.py b/gooddata-api-client/gooddata_api_client/model/ranking_filter.py
new file mode 100644
index 000000000..1f424f85f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/ranking_filter.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.ranking_filter_ranking_filter import RankingFilterRankingFilter
+ globals()['RankingFilterRankingFilter'] = RankingFilterRankingFilter
+
+
+class RankingFilter(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 {
+ 'ranking_filter': (RankingFilterRankingFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'ranking_filter': 'rankingFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, ranking_filter, *args, **kwargs): # noqa: E501
+ """RankingFilter - a model defined in OpenAPI
+
+ Args:
+ ranking_filter (RankingFilterRankingFilter):
+
+ 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.ranking_filter = ranking_filter
+ 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, ranking_filter, *args, **kwargs): # noqa: E501
+ """RankingFilter - a model defined in OpenAPI
+
+ Args:
+ ranking_filter (RankingFilterRankingFilter):
+
+ 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.ranking_filter = ranking_filter
+ 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/ranking_filter_ranking_filter.py b/gooddata-api-client/gooddata_api_client/model/ranking_filter_ranking_filter.py
new file mode 100644
index 000000000..a6e316e8e
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/ranking_filter_ranking_filter.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.afm_identifier import AfmIdentifier
+ globals()['AfmIdentifier'] = AfmIdentifier
+
+
+class RankingFilterRankingFilter(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 = {
+ ('operator',): {
+ 'TOP': "TOP",
+ 'BOTTOM': "BOTTOM",
+ },
+ }
+
+ 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 {
+ 'measures': ([AfmIdentifier],), # noqa: E501
+ 'operator': (str,), # noqa: E501
+ 'value': (int,), # noqa: E501
+ 'apply_on_result': (bool,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'measures': 'measures', # noqa: E501
+ 'operator': 'operator', # noqa: E501
+ 'value': 'value', # noqa: E501
+ 'apply_on_result': 'applyOnResult', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, measures, operator, value, *args, **kwargs): # noqa: E501
+ """RankingFilterRankingFilter - a model defined in OpenAPI
+
+ Args:
+ measures ([AfmIdentifier]):
+ operator (str):
+ value (int):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ apply_on_result (bool): [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.measures = measures
+ self.operator = operator
+ 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, measures, operator, value, *args, **kwargs): # noqa: E501
+ """RankingFilterRankingFilter - a model defined in OpenAPI
+
+ Args:
+ measures ([AfmIdentifier]):
+ operator (str):
+ value (int):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ apply_on_result (bool): [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.measures = measures
+ self.operator = operator
+ 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/reference_identifier.py b/gooddata-api-client/gooddata_api_client/model/reference_identifier.py
new file mode 100644
index 000000000..a159f03e1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/reference_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 ReferenceIdentifier(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',): {
+ 'DATASET': "dataset",
+ },
+ }
+
+ validations = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^(?:(?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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
+ """ReferenceIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Reference ID.
+
+ Keyword Args:
+ type (str): A type of the reference.. defaults to "dataset", must be one of ["dataset", ] # 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', "dataset")
+ _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
+ """ReferenceIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Reference ID.
+
+ Keyword Args:
+ type (str): A type of the reference.. defaults to "dataset", must be one of ["dataset", ] # 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', "dataset")
+ _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/relative_date_filter.py b/gooddata-api-client/gooddata_api_client/model/relative_date_filter.py
new file mode 100644
index 000000000..8de03016f
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/relative_date_filter.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.relative_date_filter_relative_date_filter import RelativeDateFilterRelativeDateFilter
+ globals()['RelativeDateFilterRelativeDateFilter'] = RelativeDateFilterRelativeDateFilter
+
+
+class RelativeDateFilter(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 {
+ 'relative_date_filter': (RelativeDateFilterRelativeDateFilter,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'relative_date_filter': 'relativeDateFilter', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, relative_date_filter, *args, **kwargs): # noqa: E501
+ """RelativeDateFilter - a model defined in OpenAPI
+
+ Args:
+ relative_date_filter (RelativeDateFilterRelativeDateFilter):
+
+ 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.relative_date_filter = relative_date_filter
+ 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, relative_date_filter, *args, **kwargs): # noqa: E501
+ """RelativeDateFilter - a model defined in OpenAPI
+
+ Args:
+ relative_date_filter (RelativeDateFilterRelativeDateFilter):
+
+ 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.relative_date_filter = relative_date_filter
+ 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/relative_date_filter_relative_date_filter.py b/gooddata-api-client/gooddata_api_client/model/relative_date_filter_relative_date_filter.py
new file mode 100644
index 000000000..32f8d25fa
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/relative_date_filter_relative_date_filter.py
@@ -0,0 +1,315 @@
+"""
+ 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.afm_object_identifier_dataset import AfmObjectIdentifierDataset
+ globals()['AfmObjectIdentifierDataset'] = AfmObjectIdentifierDataset
+
+
+class RelativeDateFilterRelativeDateFilter(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 = {
+ ('granularity',): {
+ 'MINUTE': "MINUTE",
+ 'HOUR': "HOUR",
+ 'DAY': "DAY",
+ 'WEEK': "WEEK",
+ 'MONTH': "MONTH",
+ 'QUARTER': "QUARTER",
+ 'YEAR': "YEAR",
+ 'MINUTE_OF_HOUR': "MINUTE_OF_HOUR",
+ 'HOUR_OF_DAY': "HOUR_OF_DAY",
+ 'DAY_OF_WEEK': "DAY_OF_WEEK",
+ 'DAY_OF_MONTH': "DAY_OF_MONTH",
+ 'DAY_OF_YEAR': "DAY_OF_YEAR",
+ 'WEEK_OF_YEAR': "WEEK_OF_YEAR",
+ 'MONTH_OF_YEAR': "MONTH_OF_YEAR",
+ 'QUARTER_OF_YEAR': "QUARTER_OF_YEAR",
+ },
+ }
+
+ 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 {
+ 'dataset': (AfmObjectIdentifierDataset,), # noqa: E501
+ '_from': (int,), # noqa: E501
+ 'granularity': (str,), # noqa: E501
+ 'to': (int,), # noqa: E501
+ 'apply_on_result': (bool,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'dataset': 'dataset', # noqa: E501
+ '_from': 'from', # noqa: E501
+ 'granularity': 'granularity', # noqa: E501
+ 'to': 'to', # noqa: E501
+ 'apply_on_result': 'applyOnResult', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, dataset, _from, granularity, to, *args, **kwargs): # noqa: E501
+ """RelativeDateFilterRelativeDateFilter - a model defined in OpenAPI
+
+ Args:
+ dataset (AfmObjectIdentifierDataset):
+ _from (int): Start of the filtering interval. Specified by number of periods (with respect to given granularity). Typically negative (historical time interval like -2 for '2 days/weeks, ... ago').
+ granularity (str): Date granularity specifying particular date attribute in given dimension.
+ to (int): End of the filtering interval. Specified by number of periods (with respect to given granularity). Value 'O' is representing current time-interval (current day, week, ...).
+
+ 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,)
+ apply_on_result (bool): [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.dataset = dataset
+ self._from = _from
+ self.granularity = granularity
+ self.to = to
+ 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, dataset, _from, granularity, to, *args, **kwargs): # noqa: E501
+ """RelativeDateFilterRelativeDateFilter - a model defined in OpenAPI
+
+ Args:
+ dataset (AfmObjectIdentifierDataset):
+ _from (int): Start of the filtering interval. Specified by number of periods (with respect to given granularity). Typically negative (historical time interval like -2 for '2 days/weeks, ... ago').
+ granularity (str): Date granularity specifying particular date attribute in given dimension.
+ to (int): End of the filtering interval. Specified by number of periods (with respect to given granularity). Value 'O' is representing current time-interval (current day, week, ...).
+
+ 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,)
+ apply_on_result (bool): [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.dataset = dataset
+ self._from = _from
+ self.granularity = granularity
+ self.to = to
+ 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/resolve_settings_request.py b/gooddata-api-client/gooddata_api_client/model/resolve_settings_request.py
new file mode 100644
index 000000000..500a9ed31
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/resolve_settings_request.py
@@ -0,0 +1,270 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class ResolveSettingsRequest(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 {
+ 'settings': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'settings': 'settings', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, settings, *args, **kwargs): # noqa: E501
+ """ResolveSettingsRequest - a model defined in OpenAPI
+
+ Args:
+ settings ([str]): An array of setting IDs to resolve.
+
+ 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.settings = settings
+ 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, settings, *args, **kwargs): # noqa: E501
+ """ResolveSettingsRequest - a model defined in OpenAPI
+
+ Args:
+ settings ([str]): An array of setting IDs to resolve.
+
+ 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.settings = settings
+ 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/rest_api_identifier.py b/gooddata-api-client/gooddata_api_client/model/rest_api_identifier.py
new file mode 100644
index 000000000..553ae0769
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/rest_api_identifier.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 RestApiIdentifier(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 = {
+ ('id',): {
+ 'regex': {
+ 'pattern': r'^((?!\.)[.A-Za-z0-9_-]{1,255}:)?(?!\.)[.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, type, *args, **kwargs): # noqa: E501
+ """RestApiIdentifier - 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
+ """RestApiIdentifier - 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/result_cache_metadata.py b/gooddata-api-client/gooddata_api_client/model/result_cache_metadata.py
new file mode 100644
index 000000000..dc26ed7f4
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/result_cache_metadata.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.afm import AFM
+ from gooddata_api_client.model.execution_response import ExecutionResponse
+ from gooddata_api_client.model.result_spec import ResultSpec
+ globals()['AFM'] = AFM
+ globals()['ExecutionResponse'] = ExecutionResponse
+ globals()['ResultSpec'] = ResultSpec
+
+
+class ResultCacheMetadata(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 {
+ 'afm': (AFM,), # noqa: E501
+ 'execution_response': (ExecutionResponse,), # noqa: E501
+ 'result_size': (int,), # noqa: E501
+ 'result_spec': (ResultSpec,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'afm': 'afm', # noqa: E501
+ 'execution_response': 'executionResponse', # noqa: E501
+ 'result_size': 'resultSize', # noqa: E501
+ 'result_spec': 'resultSpec', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, afm, execution_response, result_size, result_spec, *args, **kwargs): # noqa: E501
+ """ResultCacheMetadata - a model defined in OpenAPI
+
+ Args:
+ afm (AFM):
+ execution_response (ExecutionResponse):
+ result_size (int):
+ result_spec (ResultSpec):
+
+ 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.afm = afm
+ self.execution_response = execution_response
+ self.result_size = result_size
+ self.result_spec = result_spec
+ 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, afm, execution_response, result_size, result_spec, *args, **kwargs): # noqa: E501
+ """ResultCacheMetadata - a model defined in OpenAPI
+
+ Args:
+ afm (AFM):
+ execution_response (ExecutionResponse):
+ result_size (int):
+ result_spec (ResultSpec):
+
+ 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.afm = afm
+ self.execution_response = execution_response
+ self.result_size = result_size
+ self.result_spec = result_spec
+ 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/result_dimension.py b/gooddata-api-client/gooddata_api_client/model/result_dimension.py
new file mode 100644
index 000000000..9fdeed379
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/result_dimension.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.result_dimension_header import ResultDimensionHeader
+ globals()['ResultDimensionHeader'] = ResultDimensionHeader
+
+
+class ResultDimension(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 {
+ 'headers': ([ResultDimensionHeader],), # noqa: E501
+ 'local_identifier': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'headers': 'headers', # noqa: E501
+ 'local_identifier': 'localIdentifier', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, headers, local_identifier, *args, **kwargs): # noqa: E501
+ """ResultDimension - a model defined in OpenAPI
+
+ Args:
+ headers ([ResultDimensionHeader]):
+ local_identifier (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.headers = headers
+ self.local_identifier = local_identifier
+ 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, headers, local_identifier, *args, **kwargs): # noqa: E501
+ """ResultDimension - a model defined in OpenAPI
+
+ Args:
+ headers ([ResultDimensionHeader]):
+ local_identifier (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.headers = headers
+ self.local_identifier = local_identifier
+ 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/result_dimension_header.py b/gooddata-api-client/gooddata_api_client/model/result_dimension_header.py
new file mode 100644
index 000000000..287d6c72d
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/result_dimension_header.py
@@ -0,0 +1,331 @@
+"""
+ 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.attribute_header_out import AttributeHeaderOut
+ from gooddata_api_client.model.attribute_header_out_attribute_header import AttributeHeaderOutAttributeHeader
+ from gooddata_api_client.model.measure_group_headers import MeasureGroupHeaders
+ from gooddata_api_client.model.measure_header_out import MeasureHeaderOut
+ globals()['AttributeHeaderOut'] = AttributeHeaderOut
+ globals()['AttributeHeaderOutAttributeHeader'] = AttributeHeaderOutAttributeHeader
+ globals()['MeasureGroupHeaders'] = MeasureGroupHeaders
+ globals()['MeasureHeaderOut'] = MeasureHeaderOut
+
+
+class ResultDimensionHeader(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'measure_group_headers': ([MeasureHeaderOut],), # noqa: E501
+ 'attribute_header': (AttributeHeaderOutAttributeHeader,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'measure_group_headers': 'measureGroupHeaders', # noqa: E501
+ 'attribute_header': 'attributeHeader', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """ResultDimensionHeader - 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,)
+ measure_group_headers ([MeasureHeaderOut]): [optional] # noqa: E501
+ attribute_header (AttributeHeaderOutAttributeHeader): [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
+ """ResultDimensionHeader - 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,)
+ measure_group_headers ([MeasureHeaderOut]): [optional] # noqa: E501
+ attribute_header (AttributeHeaderOutAttributeHeader): [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': [
+ AttributeHeaderOut,
+ MeasureGroupHeaders,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/result_spec.py b/gooddata-api-client/gooddata_api_client/model/result_spec.py
new file mode 100644
index 000000000..b137eaa50
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/result_spec.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.dimension import Dimension
+ from gooddata_api_client.model.total import Total
+ globals()['Dimension'] = Dimension
+ globals()['Total'] = Total
+
+
+class ResultSpec(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 {
+ 'dimensions': ([Dimension],), # noqa: E501
+ 'totals': ([Total],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'dimensions': 'dimensions', # noqa: E501
+ 'totals': 'totals', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, dimensions, *args, **kwargs): # noqa: E501
+ """ResultSpec - a model defined in OpenAPI
+
+ Args:
+ dimensions ([Dimension]):
+
+ 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,)
+ totals ([Total]): [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.dimensions = dimensions
+ 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, dimensions, *args, **kwargs): # noqa: E501
+ """ResultSpec - a model defined in OpenAPI
+
+ Args:
+ dimensions ([Dimension]):
+
+ 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,)
+ totals ([Total]): [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.dimensions = dimensions
+ 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/scan_request.py b/gooddata-api-client/gooddata_api_client/model/scan_request.py
new file mode 100644
index 000000000..43fe22ece
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/scan_request.py
@@ -0,0 +1,294 @@
+"""
+ 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 ScanRequest(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 {
+ 'scan_tables': (bool,), # noqa: E501
+ 'scan_views': (bool,), # noqa: E501
+ 'separator': (str,), # noqa: E501
+ 'schemata': ([str],), # noqa: E501
+ 'table_prefix': (str,), # noqa: E501
+ 'view_prefix': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'scan_tables': 'scanTables', # noqa: E501
+ 'scan_views': 'scanViews', # noqa: E501
+ 'separator': 'separator', # noqa: E501
+ 'schemata': 'schemata', # noqa: E501
+ 'table_prefix': 'tablePrefix', # noqa: E501
+ 'view_prefix': 'viewPrefix', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, scan_tables, scan_views, separator, *args, **kwargs): # noqa: E501
+ """ScanRequest - a model defined in OpenAPI
+
+ Args:
+ scan_tables (bool): A flag indicating whether the tables should be scanned.
+ scan_views (bool): A flag indicating whether the views should be scanned.
+ separator (str): A separator between prefixes and the names.
+
+ 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,)
+ schemata ([str]): What schemata will be scanned.. [optional] # noqa: E501
+ table_prefix (str): Tables starting with this prefix will be scanned. The prefix is then followed by the value of `separator` parameter. Given the table prefix is `out_table` and separator is `__`, the table with name like `out_table__customers` will be scanned.. [optional] # noqa: E501
+ view_prefix (str): Views starting with this prefix will be scanned. The prefix is then followed by the value of `separator` parameter. Given the view prefix is `out_view` and separator is `__`, the table with name like `out_view__us_customers` will be scanned.. [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.scan_tables = scan_tables
+ self.scan_views = scan_views
+ self.separator = separator
+ 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, scan_tables, scan_views, separator, *args, **kwargs): # noqa: E501
+ """ScanRequest - a model defined in OpenAPI
+
+ Args:
+ scan_tables (bool): A flag indicating whether the tables should be scanned.
+ scan_views (bool): A flag indicating whether the views should be scanned.
+ separator (str): A separator between prefixes and the names.
+
+ 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,)
+ schemata ([str]): What schemata will be scanned.. [optional] # noqa: E501
+ table_prefix (str): Tables starting with this prefix will be scanned. The prefix is then followed by the value of `separator` parameter. Given the table prefix is `out_table` and separator is `__`, the table with name like `out_table__customers` will be scanned.. [optional] # noqa: E501
+ view_prefix (str): Views starting with this prefix will be scanned. The prefix is then followed by the value of `separator` parameter. Given the view prefix is `out_view` and separator is `__`, the table with name like `out_view__us_customers` will be scanned.. [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.scan_tables = scan_tables
+ self.scan_views = scan_views
+ self.separator = separator
+ 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/scan_result_pdm.py b/gooddata-api-client/gooddata_api_client/model/scan_result_pdm.py
new file mode 100644
index 000000000..b965be370
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/scan_result_pdm.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.declarative_tables import DeclarativeTables
+ from gooddata_api_client.model.table_warning import TableWarning
+ globals()['DeclarativeTables'] = DeclarativeTables
+ globals()['TableWarning'] = TableWarning
+
+
+class ScanResultPdm(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 {
+ 'pdm': (DeclarativeTables,), # noqa: E501
+ 'warnings': ([TableWarning],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'pdm': 'pdm', # noqa: E501
+ 'warnings': 'warnings', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, pdm, warnings, *args, **kwargs): # noqa: E501
+ """ScanResultPdm - a model defined in OpenAPI
+
+ Args:
+ pdm (DeclarativeTables):
+ warnings ([TableWarning]):
+
+ 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.pdm = pdm
+ self.warnings = warnings
+ 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, pdm, warnings, *args, **kwargs): # noqa: E501
+ """ScanResultPdm - a model defined in OpenAPI
+
+ Args:
+ pdm (DeclarativeTables):
+ warnings ([TableWarning]):
+
+ 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.pdm = pdm
+ self.warnings = warnings
+ 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
new file mode 100644
index 000000000..8ad945845
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/settings.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 Settings(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 {
+ 'merge_headers': (bool,), # noqa: E501
+ 'show_filters': (bool,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'merge_headers': 'mergeHeaders', # noqa: E501
+ 'show_filters': 'showFilters', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, merge_headers, show_filters, *args, **kwargs): # noqa: E501
+ """Settings - a model defined in OpenAPI
+
+ Args:
+ merge_headers (bool): Merge equal headers in neighbouring cells.
+ show_filters (bool): Print applied filters on top of the document.
+
+ 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.merge_headers = merge_headers
+ self.show_filters = show_filters
+ 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, merge_headers, show_filters, *args, **kwargs): # noqa: E501
+ """Settings - a model defined in OpenAPI
+
+ Args:
+ merge_headers (bool): Merge equal headers in neighbouring cells.
+ show_filters (bool): Print applied filters on top of the document.
+
+ 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.merge_headers = merge_headers
+ self.show_filters = show_filters
+ 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/simple_measure_definition.py b/gooddata-api-client/gooddata_api_client/model/simple_measure_definition.py
new file mode 100644
index 000000000..f3bd98080
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/simple_measure_definition.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.simple_measure_definition_measure import SimpleMeasureDefinitionMeasure
+ globals()['SimpleMeasureDefinitionMeasure'] = SimpleMeasureDefinitionMeasure
+
+
+class SimpleMeasureDefinition(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 {
+ 'measure': (SimpleMeasureDefinitionMeasure,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'measure': 'measure', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, measure, *args, **kwargs): # noqa: E501
+ """SimpleMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ measure (SimpleMeasureDefinitionMeasure):
+
+ 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.measure = measure
+ 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, measure, *args, **kwargs): # noqa: E501
+ """SimpleMeasureDefinition - a model defined in OpenAPI
+
+ Args:
+ measure (SimpleMeasureDefinitionMeasure):
+
+ 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.measure = measure
+ 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/simple_measure_definition_measure.py b/gooddata-api-client/gooddata_api_client/model/simple_measure_definition_measure.py
new file mode 100644
index 000000000..19fd7c9b3
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/simple_measure_definition_measure.py
@@ -0,0 +1,300 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.afm_object_identifier_core import AfmObjectIdentifierCore
+ from gooddata_api_client.model.filter_definition_for_simple_measure import FilterDefinitionForSimpleMeasure
+ globals()['AfmObjectIdentifierCore'] = AfmObjectIdentifierCore
+ globals()['FilterDefinitionForSimpleMeasure'] = FilterDefinitionForSimpleMeasure
+
+
+class SimpleMeasureDefinitionMeasure(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 = {
+ ('aggregation',): {
+ 'SUM': "SUM",
+ 'COUNT': "COUNT",
+ 'AVG': "AVG",
+ 'MIN': "MIN",
+ 'MAX': "MAX",
+ 'MEDIAN': "MEDIAN",
+ 'RUNSUM': "RUNSUM",
+ 'APPROXIMATE_COUNT': "APPROXIMATE_COUNT",
+ },
+ }
+
+ 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 {
+ 'item': (AfmObjectIdentifierCore,), # noqa: E501
+ 'aggregation': (str,), # noqa: E501
+ 'compute_ratio': (bool,), # noqa: E501
+ 'filters': ([FilterDefinitionForSimpleMeasure],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'item': 'item', # noqa: E501
+ 'aggregation': 'aggregation', # noqa: E501
+ 'compute_ratio': 'computeRatio', # noqa: E501
+ 'filters': 'filters', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, item, *args, **kwargs): # noqa: E501
+ """SimpleMeasureDefinitionMeasure - a model defined in OpenAPI
+
+ Args:
+ item (AfmObjectIdentifierCore):
+
+ 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,)
+ aggregation (str): Definition of aggregation type of the metric.. [optional] # noqa: E501
+ compute_ratio (bool): If true compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).. [optional] if omitted the server will use the default value of False # noqa: E501
+ filters ([FilterDefinitionForSimpleMeasure]): Metrics can be filtered by attribute filters with the same interface as ones for global AFM. Note that only one DateFilter is allowed.. [optional] # noqa: E501
+ """
+
+ _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.item = item
+ 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, item, *args, **kwargs): # noqa: E501
+ """SimpleMeasureDefinitionMeasure - a model defined in OpenAPI
+
+ Args:
+ item (AfmObjectIdentifierCore):
+
+ 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,)
+ aggregation (str): Definition of aggregation type of the metric.. [optional] # noqa: E501
+ compute_ratio (bool): If true compute the percentage of given metric values (broken down by AFM attributes) to the total (not broken down).. [optional] if omitted the server will use the default value of False # noqa: E501
+ filters ([FilterDefinitionForSimpleMeasure]): Metrics can be filtered by attribute filters with the same interface as ones for global AFM. Note that only one DateFilter is allowed.. [optional] # noqa: E501
+ """
+
+ _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.item = item
+ 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/sort_key.py b/gooddata-api-client/gooddata_api_client/model/sort_key.py
new file mode 100644
index 000000000..354facf32
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/sort_key.py
@@ -0,0 +1,340 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.sort_key_attribute import SortKeyAttribute
+ from gooddata_api_client.model.sort_key_attribute_attribute import SortKeyAttributeAttribute
+ from gooddata_api_client.model.sort_key_total import SortKeyTotal
+ from gooddata_api_client.model.sort_key_total_total import SortKeyTotalTotal
+ from gooddata_api_client.model.sort_key_value import SortKeyValue
+ from gooddata_api_client.model.sort_key_value_value import SortKeyValueValue
+ globals()['SortKeyAttribute'] = SortKeyAttribute
+ globals()['SortKeyAttributeAttribute'] = SortKeyAttributeAttribute
+ globals()['SortKeyTotal'] = SortKeyTotal
+ globals()['SortKeyTotalTotal'] = SortKeyTotalTotal
+ globals()['SortKeyValue'] = SortKeyValue
+ globals()['SortKeyValueValue'] = SortKeyValueValue
+
+
+class SortKey(ModelComposed):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'attribute': (SortKeyAttributeAttribute,), # noqa: E501
+ 'value': (SortKeyValueValue,), # noqa: E501
+ 'total': (SortKeyTotalTotal,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attribute': 'attribute', # noqa: E501
+ 'value': 'value', # noqa: E501
+ 'total': 'total', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """SortKey - 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,)
+ attribute (SortKeyAttributeAttribute): [optional] # noqa: E501
+ value (SortKeyValueValue): [optional] # noqa: E501
+ total (SortKeyTotalTotal): [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
+ """SortKey - 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,)
+ attribute (SortKeyAttributeAttribute): [optional] # noqa: E501
+ value (SortKeyValueValue): [optional] # noqa: E501
+ total (SortKeyTotalTotal): [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': [
+ SortKeyAttribute,
+ SortKeyTotal,
+ SortKeyValue,
+ ],
+ }
diff --git a/gooddata-api-client/gooddata_api_client/model/sort_key_attribute.py b/gooddata-api-client/gooddata_api_client/model/sort_key_attribute.py
new file mode 100644
index 000000000..cae4f64ce
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/sort_key_attribute.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.sort_key_attribute_attribute import SortKeyAttributeAttribute
+ globals()['SortKeyAttributeAttribute'] = SortKeyAttributeAttribute
+
+
+class SortKeyAttribute(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 {
+ 'attribute': (SortKeyAttributeAttribute,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attribute': 'attribute', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attribute, *args, **kwargs): # noqa: E501
+ """SortKeyAttribute - a model defined in OpenAPI
+
+ Args:
+ attribute (SortKeyAttributeAttribute):
+
+ 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.attribute = attribute
+ 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, attribute, *args, **kwargs): # noqa: E501
+ """SortKeyAttribute - a model defined in OpenAPI
+
+ Args:
+ attribute (SortKeyAttributeAttribute):
+
+ 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.attribute = attribute
+ 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/sort_key_attribute_attribute.py b/gooddata-api-client/gooddata_api_client/model/sort_key_attribute_attribute.py
new file mode 100644
index 000000000..3acd779e4
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/sort_key_attribute_attribute.py
@@ -0,0 +1,288 @@
+"""
+ 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 SortKeyAttributeAttribute(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 = {
+ ('direction',): {
+ 'ASC': "ASC",
+ 'DESC': "DESC",
+ },
+ ('sort_type',): {
+ 'DEFAULT': "DEFAULT",
+ 'LABEL': "LABEL",
+ 'ATTRIBUTE': "ATTRIBUTE",
+ 'AREA': "AREA",
+ },
+ }
+
+ 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 {
+ 'attribute_identifier': (str,), # noqa: E501
+ 'direction': (str,), # noqa: E501
+ 'sort_type': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'attribute_identifier': 'attributeIdentifier', # noqa: E501
+ 'direction': 'direction', # noqa: E501
+ 'sort_type': 'sortType', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, attribute_identifier, *args, **kwargs): # noqa: E501
+ """SortKeyAttributeAttribute - a model defined in OpenAPI
+
+ Args:
+ attribute_identifier (str): Item reference (to 'itemIdentifiers') referencing, which item should be used for sorting. Only references to attributes are allowed.
+
+ 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,)
+ direction (str): Sorting elements - ascending/descending order.. [optional] # noqa: E501
+ sort_type (str): Mechanism by which this attribute should be sorted. Available options are: - DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) - LABEL: sorting by this label values - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) - AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.. [optional] if omitted the server will use the default value of "DEFAULT" # noqa: E501
+ """
+
+ _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.attribute_identifier = attribute_identifier
+ 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, attribute_identifier, *args, **kwargs): # noqa: E501
+ """SortKeyAttributeAttribute - a model defined in OpenAPI
+
+ Args:
+ attribute_identifier (str): Item reference (to 'itemIdentifiers') referencing, which item should be used for sorting. Only references to attributes are allowed.
+
+ 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,)
+ direction (str): Sorting elements - ascending/descending order.. [optional] # noqa: E501
+ sort_type (str): Mechanism by which this attribute should be sorted. Available options are: - DEFAULT: sorting based on default rules (using sort column if defined, otherwise this label) - LABEL: sorting by this label values - ATTRIBUTE: sorting by values of this label's attribute (or rather the primary label) - AREA: sorting by area (total or subtotal) corresponding to each attribute value. The area is computed by summing up all metric values in all other dimensions.. [optional] if omitted the server will use the default value of "DEFAULT" # noqa: E501
+ """
+
+ _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.attribute_identifier = attribute_identifier
+ 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/sort_key_total.py b/gooddata-api-client/gooddata_api_client/model/sort_key_total.py
new file mode 100644
index 000000000..bae028ecd
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/sort_key_total.py
@@ -0,0 +1,276 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.sort_key_total_total import SortKeyTotalTotal
+ globals()['SortKeyTotalTotal'] = SortKeyTotalTotal
+
+
+class SortKeyTotal(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'total': (SortKeyTotalTotal,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'total': 'total', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, total, *args, **kwargs): # noqa: E501
+ """SortKeyTotal - a model defined in OpenAPI
+
+ Args:
+ total (SortKeyTotalTotal):
+
+ 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.total = total
+ 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, total, *args, **kwargs): # noqa: E501
+ """SortKeyTotal - a model defined in OpenAPI
+
+ Args:
+ total (SortKeyTotalTotal):
+
+ 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.total = total
+ 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/sort_key_total_total.py b/gooddata-api-client/gooddata_api_client/model/sort_key_total_total.py
new file mode 100644
index 000000000..d52341af1
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/sort_key_total_total.py
@@ -0,0 +1,288 @@
+"""
+ 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.data_column_locators import DataColumnLocators
+ globals()['DataColumnLocators'] = DataColumnLocators
+
+
+class SortKeyTotalTotal(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 = {
+ ('direction',): {
+ 'ASC': "ASC",
+ 'DESC': "DESC",
+ },
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'total_identifier': (str,), # noqa: E501
+ 'data_column_locators': (DataColumnLocators,), # noqa: E501
+ 'direction': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'total_identifier': 'totalIdentifier', # noqa: E501
+ 'data_column_locators': 'dataColumnLocators', # noqa: E501
+ 'direction': 'direction', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, total_identifier, *args, **kwargs): # noqa: E501
+ """SortKeyTotalTotal - a model defined in OpenAPI
+
+ Args:
+ total_identifier (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,)
+ data_column_locators (DataColumnLocators): [optional] # noqa: E501
+ direction (str): Sorting elements - ascending/descending order.. [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.total_identifier = total_identifier
+ 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, total_identifier, *args, **kwargs): # noqa: E501
+ """SortKeyTotalTotal - a model defined in OpenAPI
+
+ Args:
+ total_identifier (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,)
+ data_column_locators (DataColumnLocators): [optional] # noqa: E501
+ direction (str): Sorting elements - ascending/descending order.. [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.total_identifier = total_identifier
+ 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/sort_key_value.py b/gooddata-api-client/gooddata_api_client/model/sort_key_value.py
new file mode 100644
index 000000000..1681264d6
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/sort_key_value.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.sort_key_value_value import SortKeyValueValue
+ globals()['SortKeyValueValue'] = SortKeyValueValue
+
+
+class SortKeyValue(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 {
+ 'value': (SortKeyValueValue,), # 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
+ """SortKeyValue - a model defined in OpenAPI
+
+ Args:
+ value (SortKeyValueValue):
+
+ 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
+ """SortKeyValue - a model defined in OpenAPI
+
+ Args:
+ value (SortKeyValueValue):
+
+ 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/sort_key_value_value.py b/gooddata-api-client/gooddata_api_client/model/sort_key_value_value.py
new file mode 100644
index 000000000..65c7f2434
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/sort_key_value_value.py
@@ -0,0 +1,284 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.data_column_locators import DataColumnLocators
+ globals()['DataColumnLocators'] = DataColumnLocators
+
+
+class SortKeyValueValue(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 = {
+ ('direction',): {
+ 'ASC': "ASC",
+ 'DESC': "DESC",
+ },
+ }
+
+ 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_column_locators': (DataColumnLocators,), # noqa: E501
+ 'direction': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'data_column_locators': 'dataColumnLocators', # noqa: E501
+ 'direction': 'direction', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, data_column_locators, *args, **kwargs): # noqa: E501
+ """SortKeyValueValue - a model defined in OpenAPI
+
+ Args:
+ data_column_locators (DataColumnLocators):
+
+ 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,)
+ direction (str): Sorting elements - ascending/descending order.. [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_column_locators = data_column_locators
+ 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_column_locators, *args, **kwargs): # noqa: E501
+ """SortKeyValueValue - a model defined in OpenAPI
+
+ Args:
+ data_column_locators (DataColumnLocators):
+
+ 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,)
+ direction (str): Sorting elements - ascending/descending order.. [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_column_locators = data_column_locators
+ 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/table_warning.py b/gooddata-api-client/gooddata_api_client/model/table_warning.py
new file mode 100644
index 000000000..83fb5aac0
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/table_warning.py
@@ -0,0 +1,286 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.column_warning import ColumnWarning
+ globals()['ColumnWarning'] = ColumnWarning
+
+
+class TableWarning(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 {
+ 'columns': ([ColumnWarning],), # noqa: E501
+ 'name': ([str],), # noqa: E501
+ 'message': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'columns': 'columns', # noqa: E501
+ 'name': 'name', # noqa: E501
+ 'message': 'message', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, columns, name, *args, **kwargs): # noqa: E501
+ """TableWarning - a model defined in OpenAPI
+
+ Args:
+ columns ([ColumnWarning]):
+ name ([str]): Table name.
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ message ([str]): Warning message related to the table.. [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.columns = columns
+ self.name = name
+ 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, columns, name, *args, **kwargs): # noqa: E501
+ """TableWarning - a model defined in OpenAPI
+
+ Args:
+ columns ([ColumnWarning]):
+ name ([str]): Table name.
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ message ([str]): Warning message related to the table.. [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.columns = columns
+ self.name = name
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/tabular_export_request.py b/gooddata-api-client/gooddata_api_client/model/tabular_export_request.py
new file mode 100644
index 000000000..f3285babc
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/tabular_export_request.py
@@ -0,0 +1,303 @@
+"""
+ 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.custom_override import CustomOverride
+ from gooddata_api_client.model.settings import Settings
+ globals()['CustomOverride'] = CustomOverride
+ globals()['Settings'] = Settings
+
+
+class TabularExportRequest(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 = {
+ ('format',): {
+ 'CSV': "CSV",
+ },
+ }
+
+ 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 {
+ 'execution_result': (str,), # noqa: E501
+ 'file_name': (str,), # noqa: E501
+ 'format': (str,), # noqa: E501
+ 'custom_override': (CustomOverride,), # noqa: E501
+ 'settings': (Settings,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'execution_result': 'executionResult', # noqa: E501
+ 'file_name': 'fileName', # noqa: E501
+ 'format': 'format', # noqa: E501
+ 'custom_override': 'customOverride', # noqa: E501
+ 'settings': 'settings', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, execution_result, file_name, *args, **kwargs): # noqa: E501
+ """TabularExportRequest - a model defined in OpenAPI
+
+ Args:
+ execution_result (str): Execution result identifier.
+ file_name (str): Filename of downloaded file without extension.
+
+ Keyword Args:
+ format (str): Expected file format.. defaults to "CSV", must be one of ["CSV", ] # 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,)
+ custom_override (CustomOverride): [optional] # noqa: E501
+ settings (Settings): [optional] # noqa: E501
+ """
+
+ format = kwargs.get('format', "CSV")
+ _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.execution_result = execution_result
+ self.file_name = file_name
+ self.format = format
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ 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, execution_result, file_name, *args, **kwargs): # noqa: E501
+ """TabularExportRequest - a model defined in OpenAPI
+
+ Args:
+ execution_result (str): Execution result identifier.
+ file_name (str): Filename of downloaded file without extension.
+
+ Keyword Args:
+ format (str): Expected file format.. defaults to "CSV", must be one of ["CSV", ] # 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,)
+ custom_override (CustomOverride): [optional] # noqa: E501
+ settings (Settings): [optional] # noqa: E501
+ """
+
+ format = kwargs.get('format', "CSV")
+ _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.execution_result = execution_result
+ self.file_name = file_name
+ self.format = format
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/tabular_export_result.py b/gooddata-api-client/gooddata_api_client/model/tabular_export_result.py
new file mode 100644
index 000000000..0eb00ba68
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/tabular_export_result.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 TabularExportResult(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_result': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'export_result': 'exportResult', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, export_result, *args, **kwargs): # noqa: E501
+ """TabularExportResult - a model defined in OpenAPI
+
+ Args:
+ export_result (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.export_result = export_result
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, export_result, *args, **kwargs): # noqa: E501
+ """TabularExportResult - a model defined in OpenAPI
+
+ Args:
+ export_result (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.export_result = export_result
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/test_definition_request.py b/gooddata-api-client/gooddata_api_client/model/test_definition_request.py
new file mode 100644
index 000000000..716e734ed
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/test_definition_request.py
@@ -0,0 +1,314 @@
+"""
+ 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.data_source_parameter import DataSourceParameter
+ globals()['DataSourceParameter'] = DataSourceParameter
+
+
+class TestDefinitionRequest(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',): {
+ 'POSTGRESQL': "POSTGRESQL",
+ 'REDSHIFT': "REDSHIFT",
+ 'VERTICA': "VERTICA",
+ 'SNOWFLAKE': "SNOWFLAKE",
+ 'ADS': "ADS",
+ 'BIGQUERY': "BIGQUERY",
+ 'MSSQL': "MSSQL",
+ 'PRESTO': "PRESTO",
+ 'DREMIO': "DREMIO",
+ 'DRILL': "DRILL",
+ },
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'type': (str,), # noqa: E501
+ 'url': (str,), # noqa: E501
+ 'parameters': ([DataSourceParameter],), # noqa: E501
+ 'password': (str,), # noqa: E501
+ 'schema': (str,), # noqa: E501
+ 'token': (str,), # noqa: E501
+ 'username': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'type': 'type', # noqa: E501
+ 'url': 'url', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
+ 'password': 'password', # noqa: E501
+ 'schema': 'schema', # noqa: E501
+ 'token': 'token', # noqa: E501
+ 'username': 'username', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, type, url, *args, **kwargs): # noqa: E501
+ """TestDefinitionRequest - a model defined in OpenAPI
+
+ Args:
+ type (str): Type of database, where test should connect to.
+ url (str): URL to database in JDBC format, where test should connect to.
+
+ 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,)
+ parameters ([DataSourceParameter]): [optional] # noqa: E501
+ password (str): Database user password.. [optional] # noqa: E501
+ schema (str): Database schema.. [optional] # noqa: E501
+ token (str): Secret for token based authentication for data sources which supports it.. [optional] # noqa: E501
+ username (str): Database user name.. [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.type = type
+ self.url = url
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, type, url, *args, **kwargs): # noqa: E501
+ """TestDefinitionRequest - a model defined in OpenAPI
+
+ Args:
+ type (str): Type of database, where test should connect to.
+ url (str): URL to database in JDBC format, where test should connect to.
+
+ 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,)
+ parameters ([DataSourceParameter]): [optional] # noqa: E501
+ password (str): Database user password.. [optional] # noqa: E501
+ schema (str): Database schema.. [optional] # noqa: E501
+ token (str): Secret for token based authentication for data sources which supports it.. [optional] # noqa: E501
+ username (str): Database user name.. [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.type = type
+ self.url = url
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")
diff --git a/gooddata-api-client/gooddata_api_client/model/test_request.py b/gooddata-api-client/gooddata_api_client/model/test_request.py
new file mode 100644
index 000000000..10f1181c9
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/test_request.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_api_client.model.data_source_parameter import DataSourceParameter
+ globals()['DataSourceParameter'] = DataSourceParameter
+
+
+class TestRequest(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 {
+ 'cache_path': ([str],), # noqa: E501
+ 'enable_caching': (bool,), # noqa: E501
+ 'parameters': ([DataSourceParameter],), # noqa: E501
+ 'password': (str,), # noqa: E501
+ 'schema': (str,), # noqa: E501
+ 'token': (str,), # noqa: E501
+ 'url': (str,), # noqa: E501
+ 'username': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'cache_path': 'cachePath', # noqa: E501
+ 'enable_caching': 'enableCaching', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
+ 'password': 'password', # noqa: E501
+ 'schema': 'schema', # noqa: E501
+ 'token': 'token', # noqa: E501
+ 'url': 'url', # noqa: E501
+ 'username': 'username', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """TestRequest - 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,)
+ cache_path ([str]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([DataSourceParameter]): [optional] # noqa: E501
+ password (str): Database user password.. [optional] # noqa: E501
+ schema (str): Database schema.. [optional] # noqa: E501
+ token (str): Secret for token based authentication for data sources which supports it.. [optional] # noqa: E501
+ url (str): URL to database in JDBC format, where test should connect to.. [optional] # noqa: E501
+ username (str): Database user name.. [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
+ """TestRequest - 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,)
+ cache_path ([str]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([DataSourceParameter]): [optional] # noqa: E501
+ password (str): Database user password.. [optional] # noqa: E501
+ schema (str): Database schema.. [optional] # noqa: E501
+ token (str): Secret for token based authentication for data sources which supports it.. [optional] # noqa: E501
+ url (str): URL to database in JDBC format, where test should connect to.. [optional] # noqa: E501
+ username (str): Database user name.. [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/test_response.py b/gooddata-api-client/gooddata_api_client/model/test_response.py
new file mode 100644
index 000000000..8edc40afb
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/test_response.py
@@ -0,0 +1,274 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_api_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from gooddata_api_client.exceptions import ApiAttributeError
+
+
+
+class TestResponse(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 {
+ 'successful': (bool,), # noqa: E501
+ 'error': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'successful': 'successful', # noqa: E501
+ 'error': 'error', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, successful, *args, **kwargs): # noqa: E501
+ """TestResponse - a model defined in OpenAPI
+
+ Args:
+ successful (bool): A flag indicating whether test passed or not.
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ error (str): Field containing more details in case of a failure. Details are available to a privileged user only.. [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.successful = successful
+ 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, successful, *args, **kwargs): # noqa: E501
+ """TestResponse - a model defined in OpenAPI
+
+ Args:
+ successful (bool): A flag indicating whether test passed or not.
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ error (str): Field containing more details in case of a failure. Details are available to a privileged user only.. [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.successful = successful
+ 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/total.py b/gooddata-api-client/gooddata_api_client/model/total.py
new file mode 100644
index 000000000..dc62e5ae2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/total.py
@@ -0,0 +1,301 @@
+"""
+ 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.total_dimension import TotalDimension
+ globals()['TotalDimension'] = TotalDimension
+
+
+class Total(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 = {
+ ('function',): {
+ 'SUM': "SUM",
+ 'MIN': "MIN",
+ 'MAX': "MAX",
+ 'AVG': "AVG",
+ 'MED': "MED",
+ },
+ }
+
+ 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 {
+ 'function': (str,), # noqa: E501
+ 'local_identifier': (str,), # noqa: E501
+ 'metric': (str,), # noqa: E501
+ 'total_dimensions': ([TotalDimension],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'function': 'function', # noqa: E501
+ 'local_identifier': 'localIdentifier', # noqa: E501
+ 'metric': 'metric', # noqa: E501
+ 'total_dimensions': 'totalDimensions', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, function, local_identifier, metric, total_dimensions, *args, **kwargs): # noqa: E501
+ """Total - a model defined in OpenAPI
+
+ Args:
+ function (str): Aggregation function to compute the total.
+ local_identifier (str): Total identification within this request. Used e.g. in sorting by a total.
+ metric (str): The metric for which the total will be computed
+ total_dimensions ([TotalDimension]):
+
+ 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.function = function
+ self.local_identifier = local_identifier
+ self.metric = metric
+ self.total_dimensions = total_dimensions
+ 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, function, local_identifier, metric, total_dimensions, *args, **kwargs): # noqa: E501
+ """Total - a model defined in OpenAPI
+
+ Args:
+ function (str): Aggregation function to compute the total.
+ local_identifier (str): Total identification within this request. Used e.g. in sorting by a total.
+ metric (str): The metric for which the total will be computed
+ total_dimensions ([TotalDimension]):
+
+ 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.function = function
+ self.local_identifier = local_identifier
+ self.metric = metric
+ self.total_dimensions = total_dimensions
+ 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/total_dimension.py b/gooddata-api-client/gooddata_api_client/model/total_dimension.py
new file mode 100644
index 000000000..caa50c81c
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/total_dimension.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 TotalDimension(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 = {
+ ('dimension_identifier',): {
+ 'regex': {
+ 'pattern': r'^[.a-zA-Z0-9_-]+$', # 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 {
+ 'dimension_identifier': (str,), # noqa: E501
+ 'total_dimension_items': ([str],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'dimension_identifier': 'dimensionIdentifier', # noqa: E501
+ 'total_dimension_items': 'totalDimensionItems', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, dimension_identifier, total_dimension_items, *args, **kwargs): # noqa: E501
+ """TotalDimension - a model defined in OpenAPI
+
+ Args:
+ dimension_identifier (str): An identifier of a dimension for which the total will be computed.
+ total_dimension_items ([str]): List of dimension items which will be used for total computation. The total is a grand total in this dimension if the list is empty or it includes the first dimension item from the dimension definition, and its data and header will be returned in a separate `ExecutionResultGrandTotal` structure. Otherwise, it is a subtotal and the data will be integrated into the main result.
+
+ 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.dimension_identifier = dimension_identifier
+ self.total_dimension_items = total_dimension_items
+ 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, dimension_identifier, total_dimension_items, *args, **kwargs): # noqa: E501
+ """TotalDimension - a model defined in OpenAPI
+
+ Args:
+ dimension_identifier (str): An identifier of a dimension for which the total will be computed.
+ total_dimension_items ([str]): List of dimension items which will be used for total computation. The total is a grand total in this dimension if the list is empty or it includes the first dimension item from the dimension definition, and its data and header will be returned in a separate `ExecutionResultGrandTotal` structure. Otherwise, it is a subtotal and the data will be integrated into the main result.
+
+ 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.dimension_identifier = dimension_identifier
+ self.total_dimension_items = total_dimension_items
+ 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/total_execution_result_header.py b/gooddata-api-client/gooddata_api_client/model/total_execution_result_header.py
new file mode 100644
index 000000000..54b4e0c35
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/total_execution_result_header.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.total_result_header import TotalResultHeader
+ globals()['TotalResultHeader'] = TotalResultHeader
+
+
+class TotalExecutionResultHeader(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ }
+
+ validations = {
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'total_header': (TotalResultHeader,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'total_header': 'totalHeader', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, total_header, *args, **kwargs): # noqa: E501
+ """TotalExecutionResultHeader - a model defined in OpenAPI
+
+ Args:
+ total_header (TotalResultHeader):
+
+ 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.total_header = total_header
+ 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, total_header, *args, **kwargs): # noqa: E501
+ """TotalExecutionResultHeader - a model defined in OpenAPI
+
+ Args:
+ total_header (TotalResultHeader):
+
+ 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.total_header = total_header
+ 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/total_result_header.py b/gooddata-api-client/gooddata_api_client/model/total_result_header.py
new file mode 100644
index 000000000..6d60327b2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/total_result_header.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 TotalResultHeader(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 {
+ 'function': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'function': 'function', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, function, *args, **kwargs): # noqa: E501
+ """TotalResultHeader - a model defined in OpenAPI
+
+ Args:
+ function (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.function = function
+ 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, function, *args, **kwargs): # noqa: E501
+ """TotalResultHeader - a model defined in OpenAPI
+
+ Args:
+ function (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.function = function
+ 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/user_group_identifier.py b/gooddata-api-client/gooddata_api_client/model/user_group_identifier.py
new file mode 100644
index 000000000..0e18dcd4b
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/user_group_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 UserGroupIdentifier(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',): {
+ 'USERGROUP': "userGroup",
+ },
+ }
+
+ 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
+ """UserGroupIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Identifier of the user group.
+
+ Keyword Args:
+ type (str): A type.. defaults to "userGroup", must be one of ["userGroup", ] # 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', "userGroup")
+ _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
+ """UserGroupIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Identifier of the user group.
+
+ Keyword Args:
+ type (str): A type.. defaults to "userGroup", must be one of ["userGroup", ] # 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', "userGroup")
+ _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/workspace_identifier.py b/gooddata-api-client/gooddata_api_client/model/workspace_identifier.py
new file mode 100644
index 000000000..bfd04d5e2
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model/workspace_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 WorkspaceIdentifier(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',): {
+ 'WORKSPACE': "workspace",
+ },
+ }
+
+ 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
+ """WorkspaceIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Identifier of the workspace.
+
+ Keyword Args:
+ type (str): A type.. defaults to "workspace", must be one of ["workspace", ] # 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', "workspace")
+ _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
+ """WorkspaceIdentifier - a model defined in OpenAPI
+
+ Args:
+ id (str): Identifier of the workspace.
+
+ Keyword Args:
+ type (str): A type.. defaults to "workspace", must be one of ["workspace", ] # 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', "workspace")
+ _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_utils.py b/gooddata-api-client/gooddata_api_client/model_utils.py
new file mode 100644
index 000000000..f4b206eae
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/model_utils.py
@@ -0,0 +1,2061 @@
+"""
+ 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
+"""
+
+
+from datetime import date, datetime # noqa: F401
+from copy import deepcopy
+import inspect
+import io
+import os
+import pprint
+import re
+import tempfile
+import uuid
+
+from dateutil.parser import parse
+
+from gooddata_api_client.exceptions import (
+ ApiKeyError,
+ ApiAttributeError,
+ ApiTypeError,
+ ApiValueError,
+)
+
+from gooddata_api_client.configuration import ConversionConfiguration
+
+none_type = type(None)
+file_type = io.IOBase
+
+
+def convert_js_args_to_python_args(fn):
+ from functools import wraps
+ @wraps(fn)
+ def wrapped_init(_self_sanitized, *args, **kwargs):
+ """
+ An attribute named `self` received from the api will conflicts with the reserved `self`
+ parameter of a class method. During generation, `self` attributes are mapped
+ to `_self_sanitized` in models. Here, we name `_self_sanitized` instead of `self` to avoid conflicts.
+ """
+ spec_property_naming = kwargs.get('_spec_property_naming', False)
+ if spec_property_naming:
+ kwargs = change_keys_js_to_python(kwargs, _self_sanitized if isinstance(_self_sanitized, type) else _self_sanitized.__class__)
+ return fn(_self_sanitized, *args, **kwargs)
+ return wrapped_init
+
+
+class cached_property(object):
+ # this caches the result of the function call for fn with no inputs
+ # use this as a decorator on function methods that you want converted
+ # into cached properties
+ result_key = '_results'
+
+ def __init__(self, fn):
+ self._fn = fn
+
+ def __get__(self, instance, cls=None):
+ if self.result_key in vars(self):
+ return vars(self)[self.result_key]
+ else:
+ result = self._fn()
+ setattr(self, self.result_key, result)
+ return result
+
+
+PRIMITIVE_TYPES = (list, float, int, bool, datetime, date, str, file_type)
+
+def allows_single_value_input(cls):
+ """
+ This function returns True if the input composed schema model or any
+ descendant model allows a value only input
+ This is true for cases where oneOf contains items like:
+ oneOf:
+ - float
+ - NumberWithValidation
+ - StringEnum
+ - ArrayModel
+ - null
+ TODO: lru_cache this
+ """
+ if (
+ issubclass(cls, ModelSimple) or
+ cls in PRIMITIVE_TYPES
+ ):
+ return True
+ elif issubclass(cls, ModelComposed):
+ if not cls._composed_schemas['oneOf']:
+ return False
+ return any(allows_single_value_input(c) for c in cls._composed_schemas['oneOf'])
+ return False
+
+def composed_model_input_classes(cls):
+ """
+ This function returns a list of the possible models that can be accepted as
+ inputs.
+ TODO: lru_cache this
+ """
+ if issubclass(cls, ModelSimple) or cls in PRIMITIVE_TYPES:
+ return [cls]
+ elif issubclass(cls, ModelNormal):
+ if cls.discriminator is None:
+ return [cls]
+ else:
+ return get_discriminated_classes(cls)
+ elif issubclass(cls, ModelComposed):
+ if not cls._composed_schemas['oneOf']:
+ return []
+ if cls.discriminator is None:
+ input_classes = []
+ for c in cls._composed_schemas['oneOf']:
+ input_classes.extend(composed_model_input_classes(c))
+ return input_classes
+ else:
+ return get_discriminated_classes(cls)
+ return []
+
+
+class OpenApiModel(object):
+ """The base class for all OpenAPIModels"""
+
+ def set_attribute(self, name, value):
+ # this is only used to set properties on self
+
+ path_to_item = []
+ if self._path_to_item:
+ path_to_item.extend(self._path_to_item)
+ path_to_item.append(name)
+
+ if name in self.openapi_types:
+ required_types_mixed = self.openapi_types[name]
+ elif self.additional_properties_type is None:
+ raise ApiAttributeError(
+ "{0} has no attribute '{1}'".format(
+ type(self).__name__, name),
+ path_to_item
+ )
+ elif self.additional_properties_type is not None:
+ required_types_mixed = self.additional_properties_type
+
+ if get_simple_class(name) != str:
+ error_msg = type_error_message(
+ var_name=name,
+ var_value=name,
+ valid_classes=(str,),
+ key_type=True
+ )
+ raise ApiTypeError(
+ error_msg,
+ path_to_item=path_to_item,
+ valid_classes=(str,),
+ key_type=True
+ )
+
+ if self._check_type:
+ value = validate_and_convert_types(
+ value, required_types_mixed, path_to_item, self._spec_property_naming,
+ self._check_type, configuration=self._configuration)
+ if (name,) in self.allowed_values:
+ check_allowed_values(
+ self.allowed_values,
+ (name,),
+ value
+ )
+ if (name,) in self.validations:
+ check_validations(
+ self.validations,
+ (name,),
+ value,
+ self._configuration
+ )
+ self.__dict__['_data_store'][name] = value
+
+ def __repr__(self):
+ """For `print` and `pprint`"""
+ return self.to_str()
+
+ def __ne__(self, other):
+ """Returns true if both objects are not equal"""
+ return not self == other
+
+ def __setattr__(self, attr, value):
+ """set the value of an attribute using dot notation: `instance.attr = val`"""
+ self[attr] = value
+
+ def __getattr__(self, attr):
+ """get the value of an attribute using dot notation: `instance.attr`"""
+ return self.__getitem__(attr)
+
+ def __copy__(self):
+ cls = self.__class__
+ if self.get("_spec_property_naming", False):
+ return cls._new_from_openapi_data(**self.__dict__)
+ else:
+ return cls.__new__(cls, **self.__dict__)
+
+ def __deepcopy__(self, memo):
+ cls = self.__class__
+
+ if self.get("_spec_property_naming", False):
+ new_inst = cls._new_from_openapi_data()
+ else:
+ new_inst = cls.__new__(cls)
+
+ for k, v in self.__dict__.items():
+ setattr(new_inst, k, deepcopy(v, memo))
+ return new_inst
+
+
+ def __new__(cls, *args, **kwargs):
+ # this function uses the discriminator to
+ # pick a new schema/class to instantiate because a discriminator
+ # propertyName value was passed in
+
+ if len(args) == 1:
+ arg = args[0]
+ if arg is None and is_type_nullable(cls):
+ # The input data is the 'null' value and the type is nullable.
+ return None
+
+ if issubclass(cls, ModelComposed) and allows_single_value_input(cls):
+ model_kwargs = {}
+ oneof_instance = get_oneof_instance(cls, model_kwargs, kwargs, model_arg=arg)
+ return oneof_instance
+
+
+ visited_composed_classes = kwargs.get('_visited_composed_classes', ())
+ if (
+ cls.discriminator is None or
+ cls in visited_composed_classes
+ ):
+ # Use case 1: this openapi schema (cls) does not have a discriminator
+ # Use case 2: we have already visited this class before and are sure that we
+ # want to instantiate it this time. We have visited this class deserializing
+ # a payload with a discriminator. During that process we traveled through
+ # this class but did not make an instance of it. Now we are making an
+ # instance of a composed class which contains cls in it, so this time make an instance of cls.
+ #
+ # Here's an example of use case 2: 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 the composed schema dog Dog, we will make an instance of the
+ # Animal class (because Dal has allOf: Animal) but this time we won't travel
+ # through Animal's discriminator because we passed in
+ # _visited_composed_classes = (Animal,)
+
+ return super(OpenApiModel, cls).__new__(cls)
+
+ # Get the name and value of the discriminator property.
+ # The discriminator name is obtained from the discriminator meta-data
+ # and the discriminator value is obtained from the input data.
+ discr_propertyname_py = list(cls.discriminator.keys())[0]
+ discr_propertyname_js = cls.attribute_map[discr_propertyname_py]
+ if discr_propertyname_js in kwargs:
+ discr_value = kwargs[discr_propertyname_js]
+ elif discr_propertyname_py in kwargs:
+ discr_value = kwargs[discr_propertyname_py]
+ else:
+ # The input data does not contain the discriminator property.
+ path_to_item = kwargs.get('_path_to_item', ())
+ raise ApiValueError(
+ "Cannot deserialize input data due to missing discriminator. "
+ "The discriminator property '%s' is missing at path: %s" %
+ (discr_propertyname_js, path_to_item)
+ )
+
+ # Implementation note: the last argument to get_discriminator_class
+ # is a list of visited classes. get_discriminator_class may recursively
+ # call itself and update the list of visited classes, and the initial
+ # value must be an empty list. Hence not using 'visited_composed_classes'
+ new_cls = get_discriminator_class(
+ cls, discr_propertyname_py, discr_value, [])
+ if new_cls is None:
+ path_to_item = kwargs.get('_path_to_item', ())
+ disc_prop_value = kwargs.get(
+ discr_propertyname_js, kwargs.get(discr_propertyname_py))
+ raise ApiValueError(
+ "Cannot deserialize input data due to invalid discriminator "
+ "value. The OpenAPI document has no mapping for discriminator "
+ "property '%s'='%s' at path: %s" %
+ (discr_propertyname_js, disc_prop_value, path_to_item)
+ )
+
+ if new_cls in visited_composed_classes:
+ # if we are making an instance of a composed schema Descendent
+ # which allOf includes Ancestor, then Ancestor contains
+ # a discriminator that includes Descendent.
+ # So if we make an instance of Descendent, we have to make an
+ # instance of Ancestor to hold the allOf properties.
+ # This code detects that use case and makes the instance of Ancestor
+ # For example:
+ # When making an instance of Dog, _visited_composed_classes = (Dog,)
+ # then we make an instance of Animal to include in dog._composed_instances
+ # so when we are here, cls is Animal
+ # cls.discriminator != None
+ # cls not in _visited_composed_classes
+ # new_cls = Dog
+ # but we know we know that we already have Dog
+ # because it is in visited_composed_classes
+ # so make Animal here
+ return super(OpenApiModel, cls).__new__(cls)
+
+ # Build a list containing all oneOf and anyOf descendants.
+ oneof_anyof_classes = None
+ if cls._composed_schemas is not None:
+ oneof_anyof_classes = (
+ cls._composed_schemas.get('oneOf', ()) +
+ cls._composed_schemas.get('anyOf', ()))
+ oneof_anyof_child = new_cls in oneof_anyof_classes
+ kwargs['_visited_composed_classes'] = visited_composed_classes + (cls,)
+
+ if cls._composed_schemas.get('allOf') and oneof_anyof_child:
+ # Validate that we can make self because when we make the
+ # new_cls it will not include the allOf validations in self
+ self_inst = super(OpenApiModel, cls).__new__(cls)
+ self_inst.__init__(*args, **kwargs)
+
+ if kwargs.get("_spec_property_naming", False):
+ # when true, implies new is from deserialization
+ new_inst = new_cls._new_from_openapi_data(*args, **kwargs)
+ else:
+ new_inst = new_cls.__new__(new_cls, *args, **kwargs)
+ new_inst.__init__(*args, **kwargs)
+
+ return new_inst
+
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _new_from_openapi_data(cls, *args, **kwargs):
+ # this function uses the discriminator to
+ # pick a new schema/class to instantiate because a discriminator
+ # propertyName value was passed in
+
+ if len(args) == 1:
+ arg = args[0]
+ if arg is None and is_type_nullable(cls):
+ # The input data is the 'null' value and the type is nullable.
+ return None
+
+ if issubclass(cls, ModelComposed) and allows_single_value_input(cls):
+ model_kwargs = {}
+ oneof_instance = get_oneof_instance(cls, model_kwargs, kwargs, model_arg=arg)
+ return oneof_instance
+
+
+ visited_composed_classes = kwargs.get('_visited_composed_classes', ())
+ if (
+ cls.discriminator is None or
+ cls in visited_composed_classes
+ ):
+ # Use case 1: this openapi schema (cls) does not have a discriminator
+ # Use case 2: we have already visited this class before and are sure that we
+ # want to instantiate it this time. We have visited this class deserializing
+ # a payload with a discriminator. During that process we traveled through
+ # this class but did not make an instance of it. Now we are making an
+ # instance of a composed class which contains cls in it, so this time make an instance of cls.
+ #
+ # Here's an example of use case 2: 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 the composed schema dog Dog, we will make an instance of the
+ # Animal class (because Dal has allOf: Animal) but this time we won't travel
+ # through Animal's discriminator because we passed in
+ # _visited_composed_classes = (Animal,)
+
+ return cls._from_openapi_data(*args, **kwargs)
+
+ # Get the name and value of the discriminator property.
+ # The discriminator name is obtained from the discriminator meta-data
+ # and the discriminator value is obtained from the input data.
+ discr_propertyname_py = list(cls.discriminator.keys())[0]
+ discr_propertyname_js = cls.attribute_map[discr_propertyname_py]
+ if discr_propertyname_js in kwargs:
+ discr_value = kwargs[discr_propertyname_js]
+ elif discr_propertyname_py in kwargs:
+ discr_value = kwargs[discr_propertyname_py]
+ else:
+ # The input data does not contain the discriminator property.
+ path_to_item = kwargs.get('_path_to_item', ())
+ raise ApiValueError(
+ "Cannot deserialize input data due to missing discriminator. "
+ "The discriminator property '%s' is missing at path: %s" %
+ (discr_propertyname_js, path_to_item)
+ )
+
+ # Implementation note: the last argument to get_discriminator_class
+ # is a list of visited classes. get_discriminator_class may recursively
+ # call itself and update the list of visited classes, and the initial
+ # value must be an empty list. Hence not using 'visited_composed_classes'
+ new_cls = get_discriminator_class(
+ cls, discr_propertyname_py, discr_value, [])
+ if new_cls is None:
+ path_to_item = kwargs.get('_path_to_item', ())
+ disc_prop_value = kwargs.get(
+ discr_propertyname_js, kwargs.get(discr_propertyname_py))
+ raise ApiValueError(
+ "Cannot deserialize input data due to invalid discriminator "
+ "value. The OpenAPI document has no mapping for discriminator "
+ "property '%s'='%s' at path: %s" %
+ (discr_propertyname_js, disc_prop_value, path_to_item)
+ )
+
+ if new_cls in visited_composed_classes:
+ # if we are making an instance of a composed schema Descendent
+ # which allOf includes Ancestor, then Ancestor contains
+ # a discriminator that includes Descendent.
+ # So if we make an instance of Descendent, we have to make an
+ # instance of Ancestor to hold the allOf properties.
+ # This code detects that use case and makes the instance of Ancestor
+ # For example:
+ # When making an instance of Dog, _visited_composed_classes = (Dog,)
+ # then we make an instance of Animal to include in dog._composed_instances
+ # so when we are here, cls is Animal
+ # cls.discriminator != None
+ # cls not in _visited_composed_classes
+ # new_cls = Dog
+ # but we know we know that we already have Dog
+ # because it is in visited_composed_classes
+ # so make Animal here
+ return cls._from_openapi_data(*args, **kwargs)
+
+ # Build a list containing all oneOf and anyOf descendants.
+ oneof_anyof_classes = None
+ if cls._composed_schemas is not None:
+ oneof_anyof_classes = (
+ cls._composed_schemas.get('oneOf', ()) +
+ cls._composed_schemas.get('anyOf', ()))
+ oneof_anyof_child = new_cls in oneof_anyof_classes
+ kwargs['_visited_composed_classes'] = visited_composed_classes + (cls,)
+
+ if cls._composed_schemas.get('allOf') and oneof_anyof_child:
+ # Validate that we can make self because when we make the
+ # new_cls it will not include the allOf validations in self
+ self_inst = cls._from_openapi_data(*args, **kwargs)
+
+
+ new_inst = new_cls._new_from_openapi_data(*args, **kwargs)
+ return new_inst
+
+
+class ModelSimple(OpenApiModel):
+ """the parent class of models whose type != object in their
+ swagger/openapi"""
+
+ def __setitem__(self, name, value):
+ """set the value of an attribute using square-bracket notation: `instance[attr] = val`"""
+ if name in self.required_properties:
+ self.__dict__[name] = value
+ return
+
+ self.set_attribute(name, value)
+
+ def get(self, name, default=None):
+ """returns the value of an attribute or some default value if the attribute was not set"""
+ if name in self.required_properties:
+ return self.__dict__[name]
+
+ return self.__dict__['_data_store'].get(name, default)
+
+ def __getitem__(self, name):
+ """get the value of an attribute using square-bracket notation: `instance[attr]`"""
+ if name in self:
+ return self.get(name)
+
+ raise ApiAttributeError(
+ "{0} has no attribute '{1}'".format(
+ type(self).__name__, name),
+ [e for e in [self._path_to_item, name] if e]
+ )
+
+ def __contains__(self, name):
+ """used by `in` operator to check if an attribute value was set in an instance: `'attr' in instance`"""
+ if name in self.required_properties:
+ return name in self.__dict__
+
+ return name in self.__dict__['_data_store']
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return str(self.value)
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, self.__class__):
+ return False
+
+ this_val = self._data_store['value']
+ that_val = other._data_store['value']
+ types = set()
+ types.add(this_val.__class__)
+ types.add(that_val.__class__)
+ vals_equal = this_val == that_val
+ return vals_equal
+
+
+class ModelNormal(OpenApiModel):
+ """the parent class of models whose type == object in their
+ swagger/openapi"""
+
+ def __setitem__(self, name, value):
+ """set the value of an attribute using square-bracket notation: `instance[attr] = val`"""
+ if name in self.required_properties:
+ self.__dict__[name] = value
+ return
+
+ self.set_attribute(name, value)
+
+ def get(self, name, default=None):
+ """returns the value of an attribute or some default value if the attribute was not set"""
+ if name in self.required_properties:
+ return self.__dict__[name]
+
+ return self.__dict__['_data_store'].get(name, default)
+
+ def __getitem__(self, name):
+ """get the value of an attribute using square-bracket notation: `instance[attr]`"""
+ if name in self:
+ return self.get(name)
+
+ raise ApiAttributeError(
+ "{0} has no attribute '{1}'".format(
+ type(self).__name__, name),
+ [e for e in [self._path_to_item, name] if e]
+ )
+
+ def __contains__(self, name):
+ """used by `in` operator to check if an attribute value was set in an instance: `'attr' in instance`"""
+ if name in self.required_properties:
+ return name in self.__dict__
+
+ return name in self.__dict__['_data_store']
+
+ def to_dict(self, camel_case=False):
+ """Returns the model properties as a dict"""
+ return model_to_dict(self, serialize=camel_case)
+
+ @classmethod
+ def from_dict(cls, dictionary, camel_case=True):
+ dictionary_cpy = deepcopy(dictionary)
+ return validate_and_convert_types(dictionary_cpy, (cls,), ['received_data'], camel_case, True, ConversionConfiguration.get_configuration())
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, self.__class__):
+ return False
+
+ if not set(self._data_store.keys()) == set(other._data_store.keys()):
+ return False
+ for _var_name, this_val in self._data_store.items():
+ that_val = other._data_store[_var_name]
+ types = set()
+ types.add(this_val.__class__)
+ types.add(that_val.__class__)
+ vals_equal = this_val == that_val
+ if not vals_equal:
+ return False
+ return True
+
+
+
+class ModelComposed(OpenApiModel):
+ """the parent class of models whose type == object in their
+ swagger/openapi and have oneOf/allOf/anyOf
+
+ When one sets a property we use var_name_to_model_instances to store the value in
+ the correct class instances + run any type checking + validation code.
+ When one gets a property we use var_name_to_model_instances to get the value
+ from the correct class instances.
+ This allows multiple composed schemas to contain the same property with additive
+ constraints on the value.
+
+ _composed_schemas (dict) stores the anyOf/allOf/oneOf classes
+ key (str): allOf/oneOf/anyOf
+ value (list): the classes in the XOf definition.
+ Note: none_type can be included when the openapi document version >= 3.1.0
+ _composed_instances (list): stores a list of instances of the composed schemas
+ defined in _composed_schemas. When properties are accessed in the self instance,
+ they are returned from the self._data_store or the data stores in the instances
+ in self._composed_schemas
+ _var_name_to_model_instances (dict): maps between a variable name on self and
+ the composed instances (self included) which contain that data
+ key (str): property name
+ value (list): list of class instances, self or instances in _composed_instances
+ which contain the value that the key is referring to.
+ """
+
+ def __setitem__(self, name, value):
+ """set the value of an attribute using square-bracket notation: `instance[attr] = val`"""
+ if name in self.required_properties:
+ self.__dict__[name] = value
+ return
+
+ """
+ Use cases:
+ 1. additional_properties_type is None (additionalProperties == False in spec)
+ Check for property presence in self.openapi_types
+ if not present then throw an error
+ if present set in self, set attribute
+ always set on composed schemas
+ 2. additional_properties_type exists
+ set attribute on self
+ always set on composed schemas
+ """
+ if self.additional_properties_type is None:
+ """
+ For an attribute to exist on a composed schema it must:
+ - fulfill schema_requirements in the self composed schema not considering oneOf/anyOf/allOf schemas AND
+ - fulfill schema_requirements in each oneOf/anyOf/allOf schemas
+
+ schema_requirements:
+ For an attribute to exist on a schema it must:
+ - be present in properties at the schema OR
+ - have additionalProperties unset (defaults additionalProperties = any type) OR
+ - have additionalProperties set
+ """
+ if name not in self.openapi_types:
+ raise ApiAttributeError(
+ "{0} has no attribute '{1}'".format(
+ type(self).__name__, name),
+ [e for e in [self._path_to_item, name] if e]
+ )
+ # attribute must be set on self and composed instances
+ self.set_attribute(name, value)
+ for model_instance in self._composed_instances:
+ setattr(model_instance, name, value)
+ if name not in self._var_name_to_model_instances:
+ # we assigned an additional property
+ self.__dict__['_var_name_to_model_instances'][name] = self._composed_instances + [self]
+ return None
+
+ __unset_attribute_value__ = object()
+
+ def get(self, name, default=None):
+ """returns the value of an attribute or some default value if the attribute was not set"""
+ if name in self.required_properties:
+ return self.__dict__[name]
+
+ # get the attribute from the correct instance
+ model_instances = self._var_name_to_model_instances.get(name)
+ values = []
+ # A composed model stores self and child (oneof/anyOf/allOf) models under
+ # self._var_name_to_model_instances.
+ # Any property must exist in self and all model instances
+ # The value stored in all model instances must be the same
+ if model_instances:
+ for model_instance in model_instances:
+ if name in model_instance._data_store:
+ v = model_instance._data_store[name]
+ if v not in values:
+ values.append(v)
+ len_values = len(values)
+ if len_values == 0:
+ return default
+ elif len_values == 1:
+ return values[0]
+ elif len_values > 1:
+ raise ApiValueError(
+ "Values stored for property {0} in {1} differ when looking "
+ "at self and self's composed instances. All values must be "
+ "the same".format(name, type(self).__name__),
+ [e for e in [self._path_to_item, name] if e]
+ )
+
+ def __getitem__(self, name):
+ """get the value of an attribute using square-bracket notation: `instance[attr]`"""
+ value = self.get(name, self.__unset_attribute_value__)
+ if value is self.__unset_attribute_value__:
+ raise ApiAttributeError(
+ "{0} has no attribute '{1}'".format(
+ type(self).__name__, name),
+ [e for e in [self._path_to_item, name] if e]
+ )
+ return value
+
+ def __contains__(self, name):
+ """used by `in` operator to check if an attribute value was set in an instance: `'attr' in instance`"""
+
+ if name in self.required_properties:
+ return name in self.__dict__
+
+ model_instances = self._var_name_to_model_instances.get(
+ name, self._additional_properties_model_instances)
+
+ if model_instances:
+ for model_instance in model_instances:
+ if name in model_instance._data_store:
+ return True
+
+ return False
+
+ def to_dict(self, camel_case=False):
+ """Returns the model properties as a dict"""
+ return model_to_dict(self, serialize=camel_case)
+
+ @classmethod
+ def from_dict(cls, dictionary, camel_case=True):
+ dictionary_cpy = deepcopy(dictionary)
+ return validate_and_convert_types(dictionary_cpy, (cls,), ['received_data'], camel_case, True, ConversionConfiguration.get_configuration())
+
+ def to_str(self):
+ """Returns the string representation of the model"""
+ return pprint.pformat(self.to_dict())
+
+ def __eq__(self, other):
+ """Returns true if both objects are equal"""
+ if not isinstance(other, self.__class__):
+ return False
+
+ if not set(self._data_store.keys()) == set(other._data_store.keys()):
+ return False
+ for _var_name, this_val in self._data_store.items():
+ that_val = other._data_store[_var_name]
+ types = set()
+ types.add(this_val.__class__)
+ types.add(that_val.__class__)
+ vals_equal = this_val == that_val
+ if not vals_equal:
+ return False
+ return True
+
+
+
+COERCION_INDEX_BY_TYPE = {
+ ModelComposed: 0,
+ ModelNormal: 1,
+ ModelSimple: 2,
+ none_type: 3, # The type of 'None'.
+ list: 4,
+ dict: 5,
+ float: 6,
+ int: 7,
+ bool: 8,
+ datetime: 9,
+ date: 10,
+ str: 11,
+ file_type: 12, # 'file_type' is an alias for the built-in 'file' or 'io.IOBase' type.
+}
+
+# these are used to limit what type conversions we try to do
+# when we have a valid type already and we want to try converting
+# to another type
+UPCONVERSION_TYPE_PAIRS = (
+ (str, datetime),
+ (str, date),
+ (int, float), # A float may be serialized as an integer, e.g. '3' is a valid serialized float.
+ (list, ModelComposed),
+ (dict, ModelComposed),
+ (str, ModelComposed),
+ (int, ModelComposed),
+ (float, ModelComposed),
+ (list, ModelComposed),
+ (list, ModelNormal),
+ (dict, ModelNormal),
+ (str, ModelSimple),
+ (int, ModelSimple),
+ (float, ModelSimple),
+ (list, ModelSimple),
+)
+
+COERCIBLE_TYPE_PAIRS = {
+ False: ( # client instantiation of a model with client data
+ # (dict, ModelComposed),
+ # (list, ModelComposed),
+ # (dict, ModelNormal),
+ # (list, ModelNormal),
+ # (str, ModelSimple),
+ # (int, ModelSimple),
+ # (float, ModelSimple),
+ # (list, ModelSimple),
+ # (str, int),
+ # (str, float),
+ # (str, datetime),
+ # (str, date),
+ # (int, str),
+ # (float, str),
+ ),
+ True: ( # server -> client data
+ (dict, ModelComposed),
+ (list, ModelComposed),
+ (dict, ModelNormal),
+ (list, ModelNormal),
+ (str, ModelSimple),
+ (int, ModelSimple),
+ (float, ModelSimple),
+ (list, ModelSimple),
+ # (str, int),
+ # (str, float),
+ (str, datetime),
+ (str, date),
+ # (int, str),
+ # (float, str),
+ (str, file_type)
+ ),
+}
+
+
+def get_simple_class(input_value):
+ """Returns an input_value's simple class that we will use for type checking
+ Python2:
+ float and int will return int, where int is the python3 int backport
+ str and unicode will return str, where str is the python3 str backport
+ Note: float and int ARE both instances of int backport
+ Note: str_py2 and unicode_py2 are NOT both instances of str backport
+
+ Args:
+ input_value (class/class_instance): the item for which we will return
+ the simple class
+ """
+ if isinstance(input_value, type):
+ # input_value is a class
+ return input_value
+ elif isinstance(input_value, tuple):
+ return tuple
+ elif isinstance(input_value, list):
+ return list
+ elif isinstance(input_value, dict):
+ return dict
+ elif isinstance(input_value, none_type):
+ return none_type
+ elif isinstance(input_value, file_type):
+ return file_type
+ elif isinstance(input_value, bool):
+ # this must be higher than the int check because
+ # isinstance(True, int) == True
+ return bool
+ elif isinstance(input_value, int):
+ return int
+ elif isinstance(input_value, datetime):
+ # this must be higher than the date check because
+ # isinstance(datetime_instance, date) == True
+ return datetime
+ elif isinstance(input_value, date):
+ return date
+ elif isinstance(input_value, str):
+ return str
+ return type(input_value)
+
+
+def check_allowed_values(allowed_values, input_variable_path, input_values):
+ """Raises an exception if the input_values are not allowed
+
+ Args:
+ allowed_values (dict): the allowed_values dict
+ input_variable_path (tuple): the path to the input variable
+ input_values (list/str/int/float/date/datetime): the values that we
+ are checking to see if they are in allowed_values
+ """
+ these_allowed_values = list(allowed_values[input_variable_path].values())
+ if (isinstance(input_values, list)
+ and not set(input_values).issubset(
+ set(these_allowed_values))):
+ invalid_values = ", ".join(
+ map(str, set(input_values) - set(these_allowed_values))),
+ raise ApiValueError(
+ "Invalid values for `%s` [%s], must be a subset of [%s]" %
+ (
+ input_variable_path[0],
+ invalid_values,
+ ", ".join(map(str, these_allowed_values))
+ )
+ )
+ elif (isinstance(input_values, dict)
+ and not set(
+ input_values.keys()).issubset(set(these_allowed_values))):
+ invalid_values = ", ".join(
+ map(str, set(input_values.keys()) - set(these_allowed_values)))
+ raise ApiValueError(
+ "Invalid keys in `%s` [%s], must be a subset of [%s]" %
+ (
+ input_variable_path[0],
+ invalid_values,
+ ", ".join(map(str, these_allowed_values))
+ )
+ )
+ elif (not isinstance(input_values, (list, dict))
+ and input_values not in these_allowed_values):
+ raise ApiValueError(
+ "Invalid value for `%s` (%s), must be one of %s" %
+ (
+ input_variable_path[0],
+ input_values,
+ these_allowed_values
+ )
+ )
+
+
+def is_json_validation_enabled(schema_keyword, configuration=None):
+ """Returns true if JSON schema validation is enabled for the specified
+ validation keyword. This can be used to skip JSON schema structural validation
+ as requested in the configuration.
+
+ Args:
+ schema_keyword (string): the name of a JSON schema validation keyword.
+ configuration (Configuration): the configuration class.
+ """
+
+ return (configuration is None or
+ not hasattr(configuration, '_disabled_client_side_validations') or
+ schema_keyword not in configuration._disabled_client_side_validations)
+
+
+def check_validations(
+ validations, input_variable_path, input_values,
+ configuration=None):
+ """Raises an exception if the input_values are invalid
+
+ Args:
+ validations (dict): the validation dictionary.
+ input_variable_path (tuple): the path to the input variable.
+ input_values (list/str/int/float/date/datetime): the values that we
+ are checking.
+ configuration (Configuration): the configuration class.
+ """
+
+ if input_values is None:
+ return
+
+ current_validations = validations[input_variable_path]
+ if (is_json_validation_enabled('multipleOf', configuration) and
+ 'multiple_of' in current_validations and
+ isinstance(input_values, (int, float)) and
+ not (float(input_values) / current_validations['multiple_of']).is_integer()):
+ # Note 'multipleOf' will be as good as the floating point arithmetic.
+ raise ApiValueError(
+ "Invalid value for `%s`, value must be a multiple of "
+ "`%s`" % (
+ input_variable_path[0],
+ current_validations['multiple_of']
+ )
+ )
+
+ if (is_json_validation_enabled('maxLength', configuration) and
+ 'max_length' in current_validations and
+ len(input_values) > current_validations['max_length']):
+ raise ApiValueError(
+ "Invalid value for `%s`, length must be less than or equal to "
+ "`%s`" % (
+ input_variable_path[0],
+ current_validations['max_length']
+ )
+ )
+
+ if (is_json_validation_enabled('minLength', configuration) and
+ 'min_length' in current_validations and
+ len(input_values) < current_validations['min_length']):
+ raise ApiValueError(
+ "Invalid value for `%s`, length must be greater than or equal to "
+ "`%s`" % (
+ input_variable_path[0],
+ current_validations['min_length']
+ )
+ )
+
+ if (is_json_validation_enabled('maxItems', configuration) and
+ 'max_items' in current_validations and
+ len(input_values) > current_validations['max_items']):
+ raise ApiValueError(
+ "Invalid value for `%s`, number of items must be less than or "
+ "equal to `%s`" % (
+ input_variable_path[0],
+ current_validations['max_items']
+ )
+ )
+
+ if (is_json_validation_enabled('minItems', configuration) and
+ 'min_items' in current_validations and
+ len(input_values) < current_validations['min_items']):
+ raise ValueError(
+ "Invalid value for `%s`, number of items must be greater than or "
+ "equal to `%s`" % (
+ input_variable_path[0],
+ current_validations['min_items']
+ )
+ )
+
+ items = ('exclusive_maximum', 'inclusive_maximum', 'exclusive_minimum',
+ 'inclusive_minimum')
+ if (any(item in current_validations for item in items)):
+ if isinstance(input_values, list):
+ max_val = max(input_values)
+ min_val = min(input_values)
+ elif isinstance(input_values, dict):
+ max_val = max(input_values.values())
+ min_val = min(input_values.values())
+ else:
+ max_val = input_values
+ min_val = input_values
+
+ if (is_json_validation_enabled('exclusiveMaximum', configuration) and
+ 'exclusive_maximum' in current_validations and
+ max_val >= current_validations['exclusive_maximum']):
+ raise ApiValueError(
+ "Invalid value for `%s`, must be a value less than `%s`" % (
+ input_variable_path[0],
+ current_validations['exclusive_maximum']
+ )
+ )
+
+ if (is_json_validation_enabled('maximum', configuration) and
+ 'inclusive_maximum' in current_validations and
+ max_val > current_validations['inclusive_maximum']):
+ raise ApiValueError(
+ "Invalid value for `%s`, must be a value less than or equal to "
+ "`%s`" % (
+ input_variable_path[0],
+ current_validations['inclusive_maximum']
+ )
+ )
+
+ if (is_json_validation_enabled('exclusiveMinimum', configuration) and
+ 'exclusive_minimum' in current_validations and
+ min_val <= current_validations['exclusive_minimum']):
+ raise ApiValueError(
+ "Invalid value for `%s`, must be a value greater than `%s`" %
+ (
+ input_variable_path[0],
+ current_validations['exclusive_maximum']
+ )
+ )
+
+ if (is_json_validation_enabled('minimum', configuration) and
+ 'inclusive_minimum' in current_validations and
+ min_val < current_validations['inclusive_minimum']):
+ raise ApiValueError(
+ "Invalid value for `%s`, must be a value greater than or equal "
+ "to `%s`" % (
+ input_variable_path[0],
+ current_validations['inclusive_minimum']
+ )
+ )
+ flags = current_validations.get('regex', {}).get('flags', 0)
+ if (is_json_validation_enabled('pattern', configuration) and
+ 'regex' in current_validations and
+ not re.search(current_validations['regex']['pattern'],
+ input_values, flags=flags)):
+ err_msg = r"Invalid value for `%s`, must match regular expression `%s`" % (
+ input_variable_path[0],
+ current_validations['regex']['pattern']
+ )
+ if flags != 0:
+ # Don't print the regex flags if the flags are not
+ # specified in the OAS document.
+ err_msg = r"%s with flags=`%s`" % (err_msg, flags)
+ raise ApiValueError(err_msg)
+
+
+def order_response_types(required_types):
+ """Returns the required types sorted in coercion order
+
+ Args:
+ required_types (list/tuple): collection of classes or instance of
+ list or dict with class information inside it.
+
+ Returns:
+ (list): coercion order sorted collection of classes or instance
+ of list or dict with class information inside it.
+ """
+
+ def index_getter(class_or_instance):
+ if isinstance(class_or_instance, list):
+ return COERCION_INDEX_BY_TYPE[list]
+ elif isinstance(class_or_instance, dict):
+ return COERCION_INDEX_BY_TYPE[dict]
+ elif (inspect.isclass(class_or_instance)
+ and issubclass(class_or_instance, ModelComposed)):
+ return COERCION_INDEX_BY_TYPE[ModelComposed]
+ elif (inspect.isclass(class_or_instance)
+ and issubclass(class_or_instance, ModelNormal)):
+ return COERCION_INDEX_BY_TYPE[ModelNormal]
+ elif (inspect.isclass(class_or_instance)
+ and issubclass(class_or_instance, ModelSimple)):
+ return COERCION_INDEX_BY_TYPE[ModelSimple]
+ elif class_or_instance in COERCION_INDEX_BY_TYPE:
+ return COERCION_INDEX_BY_TYPE[class_or_instance]
+ raise ApiValueError("Unsupported type: %s" % class_or_instance)
+
+ sorted_types = sorted(
+ required_types,
+ key=lambda class_or_instance: index_getter(class_or_instance)
+ )
+ return sorted_types
+
+
+def remove_uncoercible(required_types_classes, current_item, spec_property_naming,
+ must_convert=True):
+ """Only keeps the type conversions that are possible
+
+ Args:
+ required_types_classes (tuple): tuple of classes that are required
+ these should be ordered by COERCION_INDEX_BY_TYPE
+ 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 variables names in the input data are python
+ variable names in PEP-8 snake case.
+ current_item (any): the current item (input data) to be converted
+
+ Keyword Args:
+ must_convert (bool): if True the item to convert is of the wrong
+ type and we want a big list of coercibles
+ if False, we want a limited list of coercibles
+
+ Returns:
+ (list): the remaining coercible required types, classes only
+ """
+ current_type_simple = get_simple_class(current_item)
+
+ results_classes = []
+ for required_type_class in required_types_classes:
+ # convert our models to OpenApiModel
+ required_type_class_simplified = required_type_class
+ if isinstance(required_type_class_simplified, type):
+ if issubclass(required_type_class_simplified, ModelComposed):
+ required_type_class_simplified = ModelComposed
+ elif issubclass(required_type_class_simplified, ModelNormal):
+ required_type_class_simplified = ModelNormal
+ elif issubclass(required_type_class_simplified, ModelSimple):
+ required_type_class_simplified = ModelSimple
+
+ if required_type_class_simplified == current_type_simple:
+ # don't consider converting to one's own class
+ continue
+
+ class_pair = (current_type_simple, required_type_class_simplified)
+ if must_convert and class_pair in COERCIBLE_TYPE_PAIRS[spec_property_naming]:
+ results_classes.append(required_type_class)
+ elif class_pair in UPCONVERSION_TYPE_PAIRS:
+ results_classes.append(required_type_class)
+ return results_classes
+
+def get_discriminated_classes(cls):
+ """
+ Returns all the classes that a discriminator converts to
+ TODO: lru_cache this
+ """
+ possible_classes = []
+ key = list(cls.discriminator.keys())[0]
+ if is_type_nullable(cls):
+ possible_classes.append(cls)
+ for discr_cls in cls.discriminator[key].values():
+ if hasattr(discr_cls, 'discriminator') and discr_cls.discriminator is not None:
+ possible_classes.extend(get_discriminated_classes(discr_cls))
+ else:
+ possible_classes.append(discr_cls)
+ return possible_classes
+
+
+def get_possible_classes(cls, from_server_context):
+ # TODO: lru_cache this
+ possible_classes = [cls]
+ if from_server_context:
+ return possible_classes
+ if hasattr(cls, 'discriminator') and cls.discriminator is not None:
+ possible_classes = []
+ possible_classes.extend(get_discriminated_classes(cls))
+ elif issubclass(cls, ModelComposed):
+ possible_classes.extend(composed_model_input_classes(cls))
+ return possible_classes
+
+
+def get_required_type_classes(required_types_mixed, spec_property_naming):
+ """Converts the tuple required_types into a tuple and a dict described
+ below
+
+ Args:
+ required_types_mixed (tuple/list): will contain either classes or
+ instance of list or dict
+ spec_property_naming (bool): if True these values came from the
+ server, and we use the data types in our endpoints.
+ If False, we are client side and we need to include
+ oneOf and discriminator classes inside the data types in our endpoints
+
+ Returns:
+ (valid_classes, dict_valid_class_to_child_types_mixed):
+ valid_classes (tuple): the valid classes that the current item
+ should be
+ dict_valid_class_to_child_types_mixed (dict):
+ valid_class (class): this is the key
+ child_types_mixed (list/dict/tuple): describes the valid child
+ types
+ """
+ valid_classes = []
+ child_req_types_by_current_type = {}
+ for required_type in required_types_mixed:
+ if isinstance(required_type, list):
+ valid_classes.append(list)
+ child_req_types_by_current_type[list] = required_type
+ elif isinstance(required_type, tuple):
+ valid_classes.append(tuple)
+ child_req_types_by_current_type[tuple] = required_type
+ elif isinstance(required_type, dict):
+ valid_classes.append(dict)
+ child_req_types_by_current_type[dict] = required_type[str]
+ else:
+ valid_classes.extend(get_possible_classes(required_type, spec_property_naming))
+ return tuple(valid_classes), child_req_types_by_current_type
+
+
+def change_keys_js_to_python(input_dict, model_class):
+ """
+ Converts from javascript_key keys in the input_dict to python_keys in
+ the output dict using the mapping in model_class.
+ If the input_dict contains a key which does not declared in the model_class,
+ the key is added to the output dict as is. The assumption is the model_class
+ may have undeclared properties (additionalProperties attribute in the OAS
+ document).
+ """
+
+ if getattr(model_class, 'attribute_map', None) is None:
+ return input_dict
+ output_dict = {}
+ reversed_attr_map = {value: key for key, value in
+ model_class.attribute_map.items()}
+ for javascript_key, value in input_dict.items():
+ python_key = reversed_attr_map.get(javascript_key)
+ if python_key is None:
+ # if the key is unknown, it is in error or it is an
+ # additionalProperties variable
+ python_key = javascript_key
+ output_dict[python_key] = value
+ return output_dict
+
+
+def get_type_error(var_value, path_to_item, valid_classes, key_type=False):
+ error_msg = type_error_message(
+ var_name=path_to_item[-1],
+ var_value=var_value,
+ valid_classes=valid_classes,
+ key_type=key_type
+ )
+ return ApiTypeError(
+ error_msg,
+ path_to_item=path_to_item,
+ valid_classes=valid_classes,
+ key_type=key_type
+ )
+
+
+def deserialize_primitive(data, klass, path_to_item):
+ """Deserializes string to primitive type.
+
+ :param data: str/int/float
+ :param klass: str/class the class to convert to
+
+ :return: int, float, str, bool, date, datetime
+ """
+ additional_message = ""
+ try:
+ if klass in {datetime, date}:
+ additional_message = (
+ "If you need your parameter to have a fallback "
+ "string value, please set its type as `type: {}` in your "
+ "spec. That allows the value to be any type. "
+ )
+ if klass == datetime:
+ if len(data) < 8:
+ raise ValueError("This is not a datetime")
+ # The string should be in iso8601 datetime format.
+ parsed_datetime = parse(data)
+ date_only = (
+ parsed_datetime.hour == 0 and
+ parsed_datetime.minute == 0 and
+ parsed_datetime.second == 0 and
+ parsed_datetime.tzinfo is None and
+ 8 <= len(data) <= 10
+ )
+ if date_only:
+ raise ValueError("This is a date, not a datetime")
+ return parsed_datetime
+ elif klass == date:
+ if len(data) < 8:
+ raise ValueError("This is not a date")
+ return parse(data).date()
+ else:
+ converted_value = klass(data)
+ if isinstance(data, str) and klass == float:
+ if str(converted_value) != data:
+ # '7' -> 7.0 -> '7.0' != '7'
+ raise ValueError('This is not a float')
+ return converted_value
+ except (OverflowError, ValueError) as ex:
+ # parse can raise OverflowError
+ raise ApiValueError(
+ "{0}Failed to parse {1} as {2}".format(
+ additional_message, repr(data), klass.__name__
+ ),
+ path_to_item=path_to_item
+ ) from ex
+
+
+def get_discriminator_class(model_class,
+ discr_name,
+ discr_value, cls_visited):
+ """Returns the child class specified by the discriminator.
+
+ Args:
+ model_class (OpenApiModel): the model class.
+ discr_name (string): the name of the discriminator property.
+ discr_value (any): the discriminator value.
+ cls_visited (list): list of model classes that have been visited.
+ Used to determine the discriminator class without
+ visiting circular references indefinitely.
+
+ Returns:
+ used_model_class (class/None): the chosen child class that will be used
+ to deserialize the data, for example dog.Dog.
+ If a class is not found, None is returned.
+ """
+
+ if model_class in cls_visited:
+ # The class has already been visited and no suitable class was found.
+ return None
+ cls_visited.append(model_class)
+ used_model_class = None
+ if discr_name in model_class.discriminator:
+ class_name_to_discr_class = model_class.discriminator[discr_name]
+ used_model_class = class_name_to_discr_class.get(discr_value)
+ if used_model_class is None:
+ # We didn't find a discriminated class in class_name_to_discr_class.
+ # So look in the ancestor or descendant discriminators
+ # The discriminator mapping may exist in a descendant (anyOf, oneOf)
+ # or ancestor (allOf).
+ # Ancestor example: in the GrandparentAnimal -> ParentPet -> ChildCat
+ # hierarchy, the discriminator mappings may be defined at any level
+ # in the hierarchy.
+ # Descendant example: mammal -> whale/zebra/Pig -> BasquePig/DanishPig
+ # if we try to make BasquePig from mammal, we need to travel through
+ # the oneOf descendant discriminators to find BasquePig
+ descendant_classes = model_class._composed_schemas.get('oneOf', ()) + \
+ model_class._composed_schemas.get('anyOf', ())
+ ancestor_classes = model_class._composed_schemas.get('allOf', ())
+ possible_classes = descendant_classes + ancestor_classes
+ for cls in possible_classes:
+ # Check if the schema has inherited discriminators.
+ if hasattr(cls, 'discriminator') and cls.discriminator is not None:
+ used_model_class = get_discriminator_class(
+ cls, discr_name, discr_value, cls_visited)
+ if used_model_class is not None:
+ return used_model_class
+ return used_model_class
+
+
+def deserialize_model(model_data, model_class, path_to_item, check_type,
+ configuration, spec_property_naming):
+ """Deserializes model_data to model instance.
+
+ Args:
+ model_data (int/str/float/bool/none_type/list/dict): data to instantiate the model
+ model_class (OpenApiModel): the model class
+ path_to_item (list): path to the model in the received data
+ check_type (bool): whether to check the data tupe for the values in
+ the model
+ configuration (Configuration): the instance to use to convert files
+ 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 variables names in the input data are python
+ variable names in PEP-8 snake case.
+
+ Returns:
+ model instance
+
+ Raise:
+ ApiTypeError
+ ApiValueError
+ ApiKeyError
+ """
+
+ kw_args = dict(_check_type=check_type,
+ _path_to_item=path_to_item,
+ _configuration=configuration,
+ _spec_property_naming=spec_property_naming)
+
+ if issubclass(model_class, ModelSimple):
+ return model_class._new_from_openapi_data(model_data, **kw_args)
+ elif isinstance(model_data, list):
+ return model_class._new_from_openapi_data(*model_data, **kw_args)
+ if isinstance(model_data, dict):
+ kw_args.update(model_data)
+ return model_class._new_from_openapi_data(**kw_args)
+ elif isinstance(model_data, PRIMITIVE_TYPES):
+ return model_class._new_from_openapi_data(model_data, **kw_args)
+
+
+def deserialize_file(response_data, configuration, content_disposition=None):
+ """Deserializes body to file
+
+ Saves response body into a file in a temporary folder,
+ using the filename from the `Content-Disposition` header if provided.
+
+ Args:
+ param response_data (str): the file data to write
+ configuration (Configuration): the instance to use to convert files
+
+ Keyword Args:
+ content_disposition (str): the value of the Content-Disposition
+ header
+
+ Returns:
+ (file_type): the deserialized file which is open
+ The user is responsible for closing and reading the file
+ """
+ fd, path = tempfile.mkstemp(dir=configuration.temp_folder_path)
+ os.close(fd)
+ os.remove(path)
+
+ if content_disposition:
+ filename = re.search(r'filename=[\'"]?([^\'"\s]+)[\'"]?',
+ content_disposition,
+ flags=re.I)
+ if filename is not None:
+ filename = filename.group(1)
+ else:
+ filename = "default_" + str(uuid.uuid4())
+
+ path = os.path.join(os.path.dirname(path), filename)
+
+ with open(path, "wb") as f:
+ if isinstance(response_data, str):
+ # change str to bytes so we can write it
+ response_data = response_data.encode('utf-8')
+ f.write(response_data)
+
+ f = open(path, "rb")
+ return f
+
+
+def attempt_convert_item(input_value, valid_classes, path_to_item,
+ configuration, spec_property_naming, key_type=False,
+ must_convert=False, check_type=True):
+ """
+ Args:
+ input_value (any): the data to convert
+ valid_classes (any): the classes that are valid
+ path_to_item (list): the path to the item to convert
+ configuration (Configuration): the instance to use to convert files
+ 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 variables names in the input data are python
+ variable names in PEP-8 snake case.
+ key_type (bool): if True we need to convert a key type (not supported)
+ must_convert (bool): if True we must convert
+ check_type (bool): if True we check the type or the returned data in
+ ModelComposed/ModelNormal/ModelSimple instances
+
+ Returns:
+ instance (any) the fixed item
+
+ Raises:
+ ApiTypeError
+ ApiValueError
+ ApiKeyError
+ """
+ valid_classes_ordered = order_response_types(valid_classes)
+ valid_classes_coercible = remove_uncoercible(
+ valid_classes_ordered, input_value, spec_property_naming)
+ if not valid_classes_coercible or key_type:
+ # we do not handle keytype errors, json will take care
+ # of this for us
+ if configuration is None or not configuration.discard_unknown_keys:
+ raise get_type_error(input_value, path_to_item, valid_classes,
+ key_type=key_type)
+ for valid_class in valid_classes_coercible:
+ try:
+ if issubclass(valid_class, OpenApiModel):
+ return deserialize_model(input_value, valid_class,
+ path_to_item, check_type,
+ configuration, spec_property_naming)
+ elif valid_class == file_type:
+ return deserialize_file(input_value, configuration)
+ return deserialize_primitive(input_value, valid_class,
+ path_to_item)
+ except (ApiTypeError, ApiValueError, ApiKeyError) as conversion_exc:
+ if must_convert:
+ raise conversion_exc
+ # if we have conversion errors when must_convert == False
+ # we ignore the exception and move on to the next class
+ continue
+ # we were unable to convert, must_convert == False
+ return input_value
+
+
+def is_type_nullable(input_type):
+ """
+ Returns true if None is an allowed value for the specified input_type.
+
+ A type is nullable if at least one of the following conditions is true:
+ 1. The OAS 'nullable' attribute has been specified,
+ 1. The type is the 'null' type,
+ 1. The type is a anyOf/oneOf composed schema, and a child schema is
+ the 'null' type.
+ Args:
+ input_type (type): the class of the input_value that we are
+ checking
+ Returns:
+ bool
+ """
+ if input_type is none_type:
+ return True
+ if issubclass(input_type, OpenApiModel) and input_type._nullable:
+ return True
+ if issubclass(input_type, ModelComposed):
+ # If oneOf/anyOf, check if the 'null' type is one of the allowed types.
+ for t in input_type._composed_schemas.get('oneOf', ()):
+ if is_type_nullable(t): return True
+ for t in input_type._composed_schemas.get('anyOf', ()):
+ if is_type_nullable(t): return True
+ return False
+
+
+def is_valid_type(input_class_simple, valid_classes):
+ """
+ Args:
+ input_class_simple (class): the class of the input_value that we are
+ checking
+ valid_classes (tuple): the valid classes that the current item
+ should be
+ Returns:
+ bool
+ """
+ if issubclass(input_class_simple, OpenApiModel) and \
+ valid_classes == (bool, date, datetime, dict, float, int, list, str, none_type,):
+ return True
+ valid_type = input_class_simple in valid_classes
+ if not valid_type and (
+ issubclass(input_class_simple, OpenApiModel) or
+ input_class_simple is none_type):
+ for valid_class in valid_classes:
+ if input_class_simple is none_type and is_type_nullable(valid_class):
+ # Schema is oneOf/anyOf and the 'null' type is one of the allowed types.
+ return True
+ if not (issubclass(valid_class, OpenApiModel) and valid_class.discriminator):
+ continue
+ discr_propertyname_py = list(valid_class.discriminator.keys())[0]
+ discriminator_classes = (
+ valid_class.discriminator[discr_propertyname_py].values()
+ )
+ valid_type = is_valid_type(input_class_simple, discriminator_classes)
+ if valid_type:
+ return True
+ return valid_type
+
+
+def validate_and_convert_types(input_value, required_types_mixed, path_to_item,
+ spec_property_naming, _check_type, configuration=None):
+ """Raises a TypeError is there is a problem, otherwise returns value
+
+ Args:
+ input_value (any): the data to validate/convert
+ required_types_mixed (list/dict/tuple): A list of
+ valid classes, or a list tuples of valid classes, or a dict where
+ the value is a tuple of value classes
+ path_to_item: (list) the path to the data being validated
+ this stores a list of keys or indices to get to the data being
+ validated
+ 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 variables names in the input data are python
+ variable names in PEP-8 snake case.
+ _check_type: (boolean) if true, type will be checked and conversion
+ will be attempted.
+ configuration: (Configuration): the configuration class to use
+ when converting file_type items.
+ If passed, conversion will be attempted when possible
+ If not passed, no conversions will be attempted and
+ exceptions will be raised
+
+ Returns:
+ the correctly typed value
+
+ Raises:
+ ApiTypeError
+ """
+ results = get_required_type_classes(required_types_mixed, spec_property_naming)
+ valid_classes, child_req_types_by_current_type = results
+
+ input_class_simple = get_simple_class(input_value)
+ valid_type = is_valid_type(input_class_simple, valid_classes)
+ if not valid_type:
+ if (configuration
+ or (input_class_simple == dict
+ and not dict in valid_classes)):
+ # if input_value is not valid_type try to convert it
+ converted_instance = attempt_convert_item(
+ input_value,
+ valid_classes,
+ path_to_item,
+ configuration,
+ spec_property_naming,
+ key_type=False,
+ must_convert=True,
+ check_type=_check_type
+ )
+ return converted_instance
+ else:
+ raise get_type_error(input_value, path_to_item, valid_classes,
+ key_type=False)
+
+ # input_value's type is in valid_classes
+ if len(valid_classes) > 1 and configuration:
+ # there are valid classes which are not the current class
+ valid_classes_coercible = remove_uncoercible(
+ valid_classes, input_value, spec_property_naming, must_convert=False)
+ if valid_classes_coercible:
+ converted_instance = attempt_convert_item(
+ input_value,
+ valid_classes_coercible,
+ path_to_item,
+ configuration,
+ spec_property_naming,
+ key_type=False,
+ must_convert=False,
+ check_type=_check_type
+ )
+ return converted_instance
+
+ if child_req_types_by_current_type == {}:
+ # all types are of the required types and there are no more inner
+ # variables left to look at
+ return input_value
+ inner_required_types = child_req_types_by_current_type.get(
+ type(input_value)
+ )
+ if inner_required_types is None:
+ # for this type, there are not more inner variables left to look at
+ return input_value
+ if isinstance(input_value, list):
+ if input_value == []:
+ # allow an empty list
+ return input_value
+ for index, inner_value in enumerate(input_value):
+ inner_path = list(path_to_item)
+ inner_path.append(index)
+ input_value[index] = validate_and_convert_types(
+ inner_value,
+ inner_required_types,
+ inner_path,
+ spec_property_naming,
+ _check_type,
+ configuration=configuration
+ )
+ elif isinstance(input_value, dict):
+ if input_value == {}:
+ # allow an empty dict
+ return input_value
+ for inner_key, inner_val in input_value.items():
+ inner_path = list(path_to_item)
+ inner_path.append(inner_key)
+ if get_simple_class(inner_key) != str:
+ raise get_type_error(inner_key, inner_path, valid_classes,
+ key_type=True)
+ input_value[inner_key] = validate_and_convert_types(
+ inner_val,
+ inner_required_types,
+ inner_path,
+ spec_property_naming,
+ _check_type,
+ configuration=configuration
+ )
+ return input_value
+
+
+def model_to_dict(model_instance, serialize=True):
+ """Returns the model properties as a dict
+
+ Args:
+ model_instance (one of your model instances): the model instance that
+ will be converted to a dict.
+
+ Keyword Args:
+ serialize (bool): if True, the keys in the dict will be values from
+ attribute_map
+ """
+ result = {}
+ extract_item = lambda item: (item[0], model_to_dict(item[1], serialize=serialize)) if hasattr(item[1], '_data_store') else item
+
+ model_instances = [model_instance]
+ if model_instance._composed_schemas:
+ model_instances.extend(model_instance._composed_instances)
+ seen_json_attribute_names = set()
+ used_fallback_python_attribute_names = set()
+ py_to_json_map = {}
+ for model_instance in model_instances:
+ for attr, value in model_instance._data_store.items():
+ if serialize:
+ # we use get here because additional property key names do not
+ # exist in attribute_map
+ try:
+ attr = model_instance.attribute_map[attr]
+ py_to_json_map.update(model_instance.attribute_map)
+ seen_json_attribute_names.add(attr)
+ except KeyError:
+ used_fallback_python_attribute_names.add(attr)
+ if isinstance(value, list):
+ if not value:
+ # empty list or None
+ result[attr] = value
+ else:
+ res = []
+ for v in value:
+ if isinstance(v, PRIMITIVE_TYPES) or v is None:
+ res.append(v)
+ elif isinstance(v, ModelSimple):
+ res.append(v.value)
+ elif isinstance(v, dict):
+ res.append(dict(map(
+ extract_item,
+ v.items()
+ )))
+ else:
+ res.append(model_to_dict(v, serialize=serialize))
+ result[attr] = res
+ elif isinstance(value, dict):
+ result[attr] = dict(map(
+ extract_item,
+ value.items()
+ ))
+ elif isinstance(value, ModelSimple):
+ result[attr] = value.value
+ elif hasattr(value, '_data_store'):
+ result[attr] = model_to_dict(value, serialize=serialize)
+ else:
+ result[attr] = value
+ if serialize:
+ for python_key in used_fallback_python_attribute_names:
+ json_key = py_to_json_map.get(python_key)
+ if json_key is None:
+ continue
+ if python_key == json_key:
+ continue
+ json_key_assigned_no_need_for_python_key = json_key in seen_json_attribute_names
+ if json_key_assigned_no_need_for_python_key:
+ del result[python_key]
+
+ return result
+
+
+def type_error_message(var_value=None, var_name=None, valid_classes=None,
+ key_type=None):
+ """
+ Keyword Args:
+ var_value (any): the variable which has the type_error
+ var_name (str): the name of the variable which has the typ error
+ valid_classes (tuple): the accepted classes for current_item's
+ value
+ key_type (bool): False if our value is a value in a dict
+ True if it is a key in a dict
+ False if our item is an item in a list
+ """
+ key_or_value = 'value'
+ if key_type:
+ key_or_value = 'key'
+ valid_classes_phrase = get_valid_classes_phrase(valid_classes)
+ msg = (
+ "Invalid type for variable '{0}'. Required {1} type {2} and "
+ "passed type was {3}".format(
+ var_name,
+ key_or_value,
+ valid_classes_phrase,
+ type(var_value).__name__,
+ )
+ )
+ return msg
+
+
+def get_valid_classes_phrase(input_classes):
+ """Returns a string phrase describing what types are allowed
+ """
+ all_classes = list(input_classes)
+ all_classes = sorted(all_classes, key=lambda cls: cls.__name__)
+ all_class_names = [cls.__name__ for cls in all_classes]
+ if len(all_class_names) == 1:
+ return 'is {0}'.format(all_class_names[0])
+ return "is one of [{0}]".format(", ".join(all_class_names))
+
+
+def get_allof_instances(self, model_args, constant_args):
+ """
+ Args:
+ self: the class we are handling
+ model_args (dict): var_name to var_value
+ used to make instances
+ constant_args (dict):
+ metadata arguments:
+ _check_type
+ _path_to_item
+ _spec_property_naming
+ _configuration
+ _visited_composed_classes
+
+ Returns
+ composed_instances (list)
+ """
+ composed_instances = []
+ for allof_class in self._composed_schemas['allOf']:
+
+ try:
+ if constant_args.get('_spec_property_naming'):
+ allof_instance = allof_class._from_openapi_data(**model_args, **constant_args)
+ else:
+ allof_instance = allof_class(**model_args, **constant_args)
+ composed_instances.append(allof_instance)
+ except Exception as ex:
+ raise ApiValueError(
+ "Invalid inputs given to generate an instance of '%s'. The "
+ "input data was invalid for the allOf schema '%s' in the composed "
+ "schema '%s'. Error=%s" % (
+ allof_class.__name__,
+ allof_class.__name__,
+ self.__class__.__name__,
+ str(ex)
+ )
+ ) from ex
+ return composed_instances
+
+
+def get_oneof_instance(cls, model_kwargs, constant_kwargs, model_arg=None):
+ """
+ Find the oneOf schema that matches the input data (e.g. payload).
+ If exactly one schema matches the input data, an instance of that schema
+ is returned.
+ If zero or more than one schema match the input data, an exception is raised.
+ In OAS 3.x, the payload MUST, by validation, match exactly one of the
+ schemas described by oneOf.
+
+ Args:
+ cls: the class we are handling
+ model_kwargs (dict): var_name to var_value
+ The input data, e.g. the payload that must match a oneOf schema
+ in the OpenAPI document.
+ constant_kwargs (dict): var_name to var_value
+ args that every model requires, including configuration, server
+ and path to item.
+
+ Kwargs:
+ model_arg: (int, float, bool, str, date, datetime, ModelSimple, None):
+ the value to assign to a primitive class or ModelSimple class
+ Notes:
+ - this is only passed in when oneOf includes types which are not object
+ - None is used to suppress handling of model_arg, nullable models are handled in __new__
+
+ Returns
+ oneof_instance (instance)
+ """
+ if len(cls._composed_schemas['oneOf']) == 0:
+ return None
+
+ oneof_instances = []
+ # Iterate over each oneOf schema and determine if the input data
+ # matches the oneOf schemas.
+ for oneof_class in cls._composed_schemas['oneOf']:
+ # The composed oneOf schema allows the 'null' type and the input data
+ # is the null value. This is a OAS >= 3.1 feature.
+ if oneof_class is none_type:
+ # skip none_types because we are deserializing dict data.
+ # none_type deserialization is handled in the __new__ method
+ continue
+
+ single_value_input = allows_single_value_input(oneof_class)
+
+ try:
+ if not single_value_input:
+ if constant_kwargs.get('_spec_property_naming'):
+ oneof_instance = oneof_class._from_openapi_data(**model_kwargs, **constant_kwargs)
+ else:
+ oneof_instance = oneof_class(**model_kwargs, **constant_kwargs)
+ else:
+ if issubclass(oneof_class, ModelSimple):
+ if constant_kwargs.get('_spec_property_naming'):
+ oneof_instance = oneof_class._from_openapi_data(model_arg, **constant_kwargs)
+ else:
+ oneof_instance = oneof_class(model_arg, **constant_kwargs)
+ elif oneof_class in PRIMITIVE_TYPES:
+ oneof_instance = validate_and_convert_types(
+ model_arg,
+ (oneof_class,),
+ constant_kwargs['_path_to_item'],
+ constant_kwargs['_spec_property_naming'],
+ constant_kwargs['_check_type'],
+ configuration=constant_kwargs['_configuration']
+ )
+ oneof_instances.append(oneof_instance)
+ except Exception:
+ pass
+ if len(oneof_instances) == 0:
+ raise ApiValueError(
+ "Invalid inputs given to generate an instance of %s. None "
+ "of the oneOf schemas matched the input data." %
+ cls.__name__
+ )
+ elif len(oneof_instances) > 1:
+ raise ApiValueError(
+ "Invalid inputs given to generate an instance of %s. Multiple "
+ "oneOf schemas matched the inputs, but a max of one is allowed." %
+ cls.__name__
+ )
+ return oneof_instances[0]
+
+
+def get_anyof_instances(self, model_args, constant_args):
+ """
+ Args:
+ self: the class we are handling
+ model_args (dict): var_name to var_value
+ The input data, e.g. the payload that must match at least one
+ anyOf child schema in the OpenAPI document.
+ constant_args (dict): var_name to var_value
+ args that every model requires, including configuration, server
+ and path to item.
+
+ Returns
+ anyof_instances (list)
+ """
+ anyof_instances = []
+ if len(self._composed_schemas['anyOf']) == 0:
+ return anyof_instances
+
+ for anyof_class in self._composed_schemas['anyOf']:
+ # The composed oneOf schema allows the 'null' type and the input data
+ # is the null value. This is a OAS >= 3.1 feature.
+ if anyof_class is none_type:
+ # skip none_types because we are deserializing dict data.
+ # none_type deserialization is handled in the __new__ method
+ continue
+
+ try:
+ if constant_args.get('_spec_property_naming'):
+ anyof_instance = anyof_class._from_openapi_data(**model_args, **constant_args)
+ else:
+ anyof_instance = anyof_class(**model_args, **constant_args)
+ anyof_instances.append(anyof_instance)
+ except Exception:
+ pass
+ if len(anyof_instances) == 0:
+ raise ApiValueError(
+ "Invalid inputs given to generate an instance of %s. None of the "
+ "anyOf schemas matched the inputs." %
+ self.__class__.__name__
+ )
+ return anyof_instances
+
+
+def get_discarded_args(self, composed_instances, model_args):
+ """
+ Gathers the args that were discarded by configuration.discard_unknown_keys
+ """
+ model_arg_keys = model_args.keys()
+ discarded_args = set()
+ # arguments passed to self were already converted to python names
+ # before __init__ was called
+ for instance in composed_instances:
+ if instance.__class__ in self._composed_schemas['allOf']:
+ try:
+ keys = instance.to_dict().keys()
+ discarded_keys = model_args - keys
+ discarded_args.update(discarded_keys)
+ except Exception:
+ # allOf integer schema will throw exception
+ pass
+ else:
+ try:
+ all_keys = set(model_to_dict(instance, serialize=False).keys())
+ js_keys = model_to_dict(instance, serialize=True).keys()
+ all_keys.update(js_keys)
+ discarded_keys = model_arg_keys - all_keys
+ discarded_args.update(discarded_keys)
+ except Exception:
+ # allOf integer schema will throw exception
+ pass
+ return discarded_args
+
+
+def validate_get_composed_info(constant_args, model_args, self):
+ """
+ For composed schemas, generate schema instances for
+ all schemas in the oneOf/anyOf/allOf definition. If additional
+ properties are allowed, also assign those properties on
+ all matched schemas that contain additionalProperties.
+ Openapi schemas are python classes.
+
+ Exceptions are raised if:
+ - 0 or > 1 oneOf schema matches the model_args input data
+ - no anyOf schema matches the model_args input data
+ - any of the allOf schemas do not match the model_args input data
+
+ Args:
+ constant_args (dict): these are the args that every model requires
+ model_args (dict): these are the required and optional spec args that
+ were passed in to make this model
+ self (class): the class that we are instantiating
+ This class contains self._composed_schemas
+
+ Returns:
+ composed_info (list): length three
+ composed_instances (list): the composed instances which are not
+ self
+ var_name_to_model_instances (dict): a dict going from var_name
+ to the model_instance which holds that var_name
+ the model_instance may be self or an instance of one of the
+ classes in self.composed_instances()
+ additional_properties_model_instances (list): a list of the
+ model instances which have the property
+ additional_properties_type. This list can include self
+ """
+ # create composed_instances
+ composed_instances = []
+ allof_instances = get_allof_instances(self, model_args, constant_args)
+ composed_instances.extend(allof_instances)
+ oneof_instance = get_oneof_instance(self.__class__, model_args, constant_args)
+ if oneof_instance is not None:
+ composed_instances.append(oneof_instance)
+ anyof_instances = get_anyof_instances(self, model_args, constant_args)
+ composed_instances.extend(anyof_instances)
+ """
+ set additional_properties_model_instances
+ additional properties must be evaluated at the schema level
+ so self's additional properties are most important
+ If self is a composed schema with:
+ - no properties defined in self
+ - additionalProperties: False
+ Then for object payloads every property is an additional property
+ and they are not allowed, so only empty dict is allowed
+
+ Properties must be set on all matching schemas
+ so when a property is assigned toa composed instance, it must be set on all
+ composed instances regardless of additionalProperties presence
+ keeping it to prevent breaking changes in v5.0.1
+ TODO remove cls._additional_properties_model_instances in 6.0.0
+ """
+ additional_properties_model_instances = []
+ if self.additional_properties_type is not None:
+ additional_properties_model_instances = [self]
+
+ """
+ no need to set properties on self in here, they will be set in __init__
+ By here all composed schema oneOf/anyOf/allOf instances have their properties set using
+ model_args
+ """
+ discarded_args = get_discarded_args(self, composed_instances, model_args)
+
+ # map variable names to composed_instances
+ var_name_to_model_instances = {}
+ for prop_name in model_args:
+ if prop_name not in discarded_args:
+ var_name_to_model_instances[prop_name] = [self] + composed_instances
+
+ return [
+ composed_instances,
+ var_name_to_model_instances,
+ additional_properties_model_instances,
+ discarded_args
+ ]
diff --git a/gooddata-api-client/gooddata_api_client/models/__init__.py b/gooddata-api-client/gooddata_api_client/models/__init__.py
new file mode 100644
index 000000000..bcb207285
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/models/__init__.py
@@ -0,0 +1,472 @@
+# flake8: noqa
+
+# import all models into this package
+# if you have many models here with many references from one model to another this may
+# raise a RecursionError
+# to avoid this, import only the models that you directly need like:
+# from from gooddata_api_client.model.pet import Pet
+# or import this package, but before doing it, use:
+# import sys
+# sys.setrecursionlimit(n)
+
+from gooddata_api_client.model.afm import AFM
+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
+from gooddata_api_client.model.afm_execution import AfmExecution
+from gooddata_api_client.model.afm_execution_response import AfmExecutionResponse
+from gooddata_api_client.model.afm_identifier import AfmIdentifier
+from gooddata_api_client.model.afm_local_identifier import AfmLocalIdentifier
+from gooddata_api_client.model.afm_object_identifier import AfmObjectIdentifier
+from gooddata_api_client.model.afm_object_identifier_attribute import AfmObjectIdentifierAttribute
+from gooddata_api_client.model.afm_object_identifier_attribute_identifier import AfmObjectIdentifierAttributeIdentifier
+from gooddata_api_client.model.afm_object_identifier_core import AfmObjectIdentifierCore
+from gooddata_api_client.model.afm_object_identifier_core_identifier import AfmObjectIdentifierCoreIdentifier
+from gooddata_api_client.model.afm_object_identifier_dataset import AfmObjectIdentifierDataset
+from gooddata_api_client.model.afm_object_identifier_dataset_identifier import AfmObjectIdentifierDatasetIdentifier
+from gooddata_api_client.model.afm_object_identifier_identifier import AfmObjectIdentifierIdentifier
+from gooddata_api_client.model.afm_object_identifier_label import AfmObjectIdentifierLabel
+from gooddata_api_client.model.afm_object_identifier_label_identifier import AfmObjectIdentifierLabelIdentifier
+from gooddata_api_client.model.afm_valid_objects_query import AfmValidObjectsQuery
+from gooddata_api_client.model.afm_valid_objects_response import AfmValidObjectsResponse
+from gooddata_api_client.model.api_entitlement import ApiEntitlement
+from gooddata_api_client.model.arithmetic_measure_definition import ArithmeticMeasureDefinition
+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.attribute_execution_result_header import AttributeExecutionResultHeader
+from gooddata_api_client.model.attribute_filter import AttributeFilter
+from gooddata_api_client.model.attribute_filter_elements import AttributeFilterElements
+from gooddata_api_client.model.attribute_header_out import AttributeHeaderOut
+from gooddata_api_client.model.attribute_header_out_attribute_header import AttributeHeaderOutAttributeHeader
+from gooddata_api_client.model.attribute_item import AttributeItem
+from gooddata_api_client.model.attribute_result_header import AttributeResultHeader
+from gooddata_api_client.model.column_warning import ColumnWarning
+from gooddata_api_client.model.comparison_measure_value_filter import ComparisonMeasureValueFilter
+from gooddata_api_client.model.comparison_measure_value_filter_comparison_measure_value_filter import ComparisonMeasureValueFilterComparisonMeasureValueFilter
+from gooddata_api_client.model.custom_label import CustomLabel
+from gooddata_api_client.model.custom_metric import CustomMetric
+from gooddata_api_client.model.custom_override import CustomOverride
+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
+from gooddata_api_client.model.data_source_schemata import DataSourceSchemata
+from gooddata_api_client.model.data_source_table_identifier import DataSourceTableIdentifier
+from gooddata_api_client.model.dataset_reference_identifier import DatasetReferenceIdentifier
+from gooddata_api_client.model.date_filter import DateFilter
+from gooddata_api_client.model.declarative_analytical_dashboard import DeclarativeAnalyticalDashboard
+from gooddata_api_client.model.declarative_analytics import DeclarativeAnalytics
+from gooddata_api_client.model.declarative_analytics_layer import DeclarativeAnalyticsLayer
+from gooddata_api_client.model.declarative_attribute import DeclarativeAttribute
+from gooddata_api_client.model.declarative_color_palette import DeclarativeColorPalette
+from gooddata_api_client.model.declarative_column import DeclarativeColumn
+from gooddata_api_client.model.declarative_csp_directive import DeclarativeCspDirective
+from gooddata_api_client.model.declarative_dashboard_plugin import DeclarativeDashboardPlugin
+from gooddata_api_client.model.declarative_data_source import DeclarativeDataSource
+from gooddata_api_client.model.declarative_data_source_permission import DeclarativeDataSourcePermission
+from gooddata_api_client.model.declarative_data_sources import DeclarativeDataSources
+from gooddata_api_client.model.declarative_dataset import DeclarativeDataset
+from gooddata_api_client.model.declarative_date_dataset import DeclarativeDateDataset
+from gooddata_api_client.model.declarative_fact import DeclarativeFact
+from gooddata_api_client.model.declarative_filter_context import DeclarativeFilterContext
+from gooddata_api_client.model.declarative_label import DeclarativeLabel
+from gooddata_api_client.model.declarative_ldm import DeclarativeLdm
+from gooddata_api_client.model.declarative_metric import DeclarativeMetric
+from gooddata_api_client.model.declarative_model import DeclarativeModel
+from gooddata_api_client.model.declarative_organization import DeclarativeOrganization
+from gooddata_api_client.model.declarative_organization_info import DeclarativeOrganizationInfo
+from gooddata_api_client.model.declarative_organization_permission import DeclarativeOrganizationPermission
+from gooddata_api_client.model.declarative_pdm import DeclarativePdm
+from gooddata_api_client.model.declarative_reference import DeclarativeReference
+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_table import DeclarativeTable
+from gooddata_api_client.model.declarative_tables import DeclarativeTables
+from gooddata_api_client.model.declarative_theme import DeclarativeTheme
+from gooddata_api_client.model.declarative_user import DeclarativeUser
+from gooddata_api_client.model.declarative_user_group import DeclarativeUserGroup
+from gooddata_api_client.model.declarative_user_groups import DeclarativeUserGroups
+from gooddata_api_client.model.declarative_users import DeclarativeUsers
+from gooddata_api_client.model.declarative_users_user_groups import DeclarativeUsersUserGroups
+from gooddata_api_client.model.declarative_visualization_object import DeclarativeVisualizationObject
+from gooddata_api_client.model.declarative_workspace import DeclarativeWorkspace
+from gooddata_api_client.model.declarative_workspace_data_filter import DeclarativeWorkspaceDataFilter
+from gooddata_api_client.model.declarative_workspace_data_filter_setting import DeclarativeWorkspaceDataFilterSetting
+from gooddata_api_client.model.declarative_workspace_data_filters import DeclarativeWorkspaceDataFilters
+from gooddata_api_client.model.declarative_workspace_hierarchy_permission import DeclarativeWorkspaceHierarchyPermission
+from gooddata_api_client.model.declarative_workspace_model import DeclarativeWorkspaceModel
+from gooddata_api_client.model.declarative_workspace_permissions import DeclarativeWorkspacePermissions
+from gooddata_api_client.model.declarative_workspaces import DeclarativeWorkspaces
+from gooddata_api_client.model.dependent_entities_graph import DependentEntitiesGraph
+from gooddata_api_client.model.dependent_entities_node import DependentEntitiesNode
+from gooddata_api_client.model.dependent_entities_request import DependentEntitiesRequest
+from gooddata_api_client.model.dependent_entities_response import DependentEntitiesResponse
+from gooddata_api_client.model.dimension import Dimension
+from gooddata_api_client.model.dimension_header import DimensionHeader
+from gooddata_api_client.model.element import Element
+from gooddata_api_client.model.elements_request import ElementsRequest
+from gooddata_api_client.model.elements_response import ElementsResponse
+from gooddata_api_client.model.entitlements_request import EntitlementsRequest
+from gooddata_api_client.model.entity_identifier import EntityIdentifier
+from gooddata_api_client.model.execution_links import ExecutionLinks
+from gooddata_api_client.model.execution_response import ExecutionResponse
+from gooddata_api_client.model.execution_result import ExecutionResult
+from gooddata_api_client.model.execution_result_grand_total import ExecutionResultGrandTotal
+from gooddata_api_client.model.execution_result_header import ExecutionResultHeader
+from gooddata_api_client.model.execution_result_paging import ExecutionResultPaging
+from gooddata_api_client.model.execution_settings import ExecutionSettings
+from gooddata_api_client.model.filter_by import FilterBy
+from gooddata_api_client.model.filter_definition import FilterDefinition
+from gooddata_api_client.model.filter_definition_for_simple_measure import FilterDefinitionForSimpleMeasure
+from gooddata_api_client.model.generate_ldm_request import GenerateLdmRequest
+from gooddata_api_client.model.grain_identifier import GrainIdentifier
+from gooddata_api_client.model.granularities_formatting import GranularitiesFormatting
+from gooddata_api_client.model.header_group import HeaderGroup
+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.inline_measure_definition import InlineMeasureDefinition
+from gooddata_api_client.model.inline_measure_definition_inline import InlineMeasureDefinitionInline
+from gooddata_api_client.model.json_api_analytical_dashboard_in import JsonApiAnalyticalDashboardIn
+from gooddata_api_client.model.json_api_analytical_dashboard_in_attributes import JsonApiAnalyticalDashboardInAttributes
+from gooddata_api_client.model.json_api_analytical_dashboard_in_document import JsonApiAnalyticalDashboardInDocument
+from gooddata_api_client.model.json_api_analytical_dashboard_linkage import JsonApiAnalyticalDashboardLinkage
+from gooddata_api_client.model.json_api_analytical_dashboard_out import JsonApiAnalyticalDashboardOut
+from gooddata_api_client.model.json_api_analytical_dashboard_out_document import JsonApiAnalyticalDashboardOutDocument
+from gooddata_api_client.model.json_api_analytical_dashboard_out_includes import JsonApiAnalyticalDashboardOutIncludes
+from gooddata_api_client.model.json_api_analytical_dashboard_out_list import JsonApiAnalyticalDashboardOutList
+from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships import JsonApiAnalyticalDashboardOutRelationships
+from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_analytical_dashboards import JsonApiAnalyticalDashboardOutRelationshipsAnalyticalDashboards
+from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_dashboard_plugins import JsonApiAnalyticalDashboardOutRelationshipsDashboardPlugins
+from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_datasets import JsonApiAnalyticalDashboardOutRelationshipsDatasets
+from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_filter_contexts import JsonApiAnalyticalDashboardOutRelationshipsFilterContexts
+from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_labels import JsonApiAnalyticalDashboardOutRelationshipsLabels
+from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_metrics import JsonApiAnalyticalDashboardOutRelationshipsMetrics
+from gooddata_api_client.model.json_api_analytical_dashboard_out_relationships_visualization_objects import JsonApiAnalyticalDashboardOutRelationshipsVisualizationObjects
+from gooddata_api_client.model.json_api_analytical_dashboard_out_with_links import JsonApiAnalyticalDashboardOutWithLinks
+from gooddata_api_client.model.json_api_analytical_dashboard_patch import JsonApiAnalyticalDashboardPatch
+from gooddata_api_client.model.json_api_analytical_dashboard_patch_document import JsonApiAnalyticalDashboardPatchDocument
+from gooddata_api_client.model.json_api_analytical_dashboard_to_many_linkage import JsonApiAnalyticalDashboardToManyLinkage
+from gooddata_api_client.model.json_api_api_token_in import JsonApiApiTokenIn
+from gooddata_api_client.model.json_api_api_token_in_document import JsonApiApiTokenInDocument
+from gooddata_api_client.model.json_api_api_token_out import JsonApiApiTokenOut
+from gooddata_api_client.model.json_api_api_token_out_attributes import JsonApiApiTokenOutAttributes
+from gooddata_api_client.model.json_api_api_token_out_document import JsonApiApiTokenOutDocument
+from gooddata_api_client.model.json_api_api_token_out_list import JsonApiApiTokenOutList
+from gooddata_api_client.model.json_api_api_token_out_with_links import JsonApiApiTokenOutWithLinks
+from gooddata_api_client.model.json_api_attribute_linkage import JsonApiAttributeLinkage
+from gooddata_api_client.model.json_api_attribute_out import JsonApiAttributeOut
+from gooddata_api_client.model.json_api_attribute_out_attributes import JsonApiAttributeOutAttributes
+from gooddata_api_client.model.json_api_attribute_out_document import JsonApiAttributeOutDocument
+from gooddata_api_client.model.json_api_attribute_out_includes import JsonApiAttributeOutIncludes
+from gooddata_api_client.model.json_api_attribute_out_list import JsonApiAttributeOutList
+from gooddata_api_client.model.json_api_attribute_out_relationships import JsonApiAttributeOutRelationships
+from gooddata_api_client.model.json_api_attribute_out_relationships_dataset import JsonApiAttributeOutRelationshipsDataset
+from gooddata_api_client.model.json_api_attribute_out_relationships_default_view import JsonApiAttributeOutRelationshipsDefaultView
+from gooddata_api_client.model.json_api_attribute_out_with_links import JsonApiAttributeOutWithLinks
+from gooddata_api_client.model.json_api_attribute_to_many_linkage import JsonApiAttributeToManyLinkage
+from gooddata_api_client.model.json_api_attribute_to_one_linkage import JsonApiAttributeToOneLinkage
+from gooddata_api_client.model.json_api_color_palette_in import JsonApiColorPaletteIn
+from gooddata_api_client.model.json_api_color_palette_in_attributes import JsonApiColorPaletteInAttributes
+from gooddata_api_client.model.json_api_color_palette_in_document import JsonApiColorPaletteInDocument
+from gooddata_api_client.model.json_api_color_palette_out import JsonApiColorPaletteOut
+from gooddata_api_client.model.json_api_color_palette_out_document import JsonApiColorPaletteOutDocument
+from gooddata_api_client.model.json_api_color_palette_out_list import JsonApiColorPaletteOutList
+from gooddata_api_client.model.json_api_color_palette_out_with_links import JsonApiColorPaletteOutWithLinks
+from gooddata_api_client.model.json_api_color_palette_patch import JsonApiColorPalettePatch
+from gooddata_api_client.model.json_api_color_palette_patch_attributes import JsonApiColorPalettePatchAttributes
+from gooddata_api_client.model.json_api_color_palette_patch_document import JsonApiColorPalettePatchDocument
+from gooddata_api_client.model.json_api_cookie_security_configuration_in import JsonApiCookieSecurityConfigurationIn
+from gooddata_api_client.model.json_api_cookie_security_configuration_in_attributes import JsonApiCookieSecurityConfigurationInAttributes
+from gooddata_api_client.model.json_api_cookie_security_configuration_in_document import JsonApiCookieSecurityConfigurationInDocument
+from gooddata_api_client.model.json_api_cookie_security_configuration_out import JsonApiCookieSecurityConfigurationOut
+from gooddata_api_client.model.json_api_cookie_security_configuration_out_document import JsonApiCookieSecurityConfigurationOutDocument
+from gooddata_api_client.model.json_api_cookie_security_configuration_patch import JsonApiCookieSecurityConfigurationPatch
+from gooddata_api_client.model.json_api_cookie_security_configuration_patch_document import JsonApiCookieSecurityConfigurationPatchDocument
+from gooddata_api_client.model.json_api_csp_directive_in import JsonApiCspDirectiveIn
+from gooddata_api_client.model.json_api_csp_directive_in_attributes import JsonApiCspDirectiveInAttributes
+from gooddata_api_client.model.json_api_csp_directive_in_document import JsonApiCspDirectiveInDocument
+from gooddata_api_client.model.json_api_csp_directive_out import JsonApiCspDirectiveOut
+from gooddata_api_client.model.json_api_csp_directive_out_document import JsonApiCspDirectiveOutDocument
+from gooddata_api_client.model.json_api_csp_directive_out_list import JsonApiCspDirectiveOutList
+from gooddata_api_client.model.json_api_csp_directive_out_with_links import JsonApiCspDirectiveOutWithLinks
+from gooddata_api_client.model.json_api_csp_directive_patch import JsonApiCspDirectivePatch
+from gooddata_api_client.model.json_api_csp_directive_patch_attributes import JsonApiCspDirectivePatchAttributes
+from gooddata_api_client.model.json_api_csp_directive_patch_document import JsonApiCspDirectivePatchDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_in import JsonApiDashboardPluginIn
+from gooddata_api_client.model.json_api_dashboard_plugin_in_attributes import JsonApiDashboardPluginInAttributes
+from gooddata_api_client.model.json_api_dashboard_plugin_in_document import JsonApiDashboardPluginInDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_linkage import JsonApiDashboardPluginLinkage
+from gooddata_api_client.model.json_api_dashboard_plugin_out import JsonApiDashboardPluginOut
+from gooddata_api_client.model.json_api_dashboard_plugin_out_document import JsonApiDashboardPluginOutDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_out_list import JsonApiDashboardPluginOutList
+from gooddata_api_client.model.json_api_dashboard_plugin_out_with_links import JsonApiDashboardPluginOutWithLinks
+from gooddata_api_client.model.json_api_dashboard_plugin_patch import JsonApiDashboardPluginPatch
+from gooddata_api_client.model.json_api_dashboard_plugin_patch_document import JsonApiDashboardPluginPatchDocument
+from gooddata_api_client.model.json_api_dashboard_plugin_to_many_linkage import JsonApiDashboardPluginToManyLinkage
+from gooddata_api_client.model.json_api_data_source_identifier_out import JsonApiDataSourceIdentifierOut
+from gooddata_api_client.model.json_api_data_source_identifier_out_attributes import JsonApiDataSourceIdentifierOutAttributes
+from gooddata_api_client.model.json_api_data_source_identifier_out_document import JsonApiDataSourceIdentifierOutDocument
+from gooddata_api_client.model.json_api_data_source_identifier_out_list import JsonApiDataSourceIdentifierOutList
+from gooddata_api_client.model.json_api_data_source_identifier_out_meta import JsonApiDataSourceIdentifierOutMeta
+from gooddata_api_client.model.json_api_data_source_identifier_out_with_links import JsonApiDataSourceIdentifierOutWithLinks
+from gooddata_api_client.model.json_api_data_source_in import JsonApiDataSourceIn
+from gooddata_api_client.model.json_api_data_source_in_attributes import JsonApiDataSourceInAttributes
+from gooddata_api_client.model.json_api_data_source_in_attributes_parameters_inner import JsonApiDataSourceInAttributesParametersInner
+from gooddata_api_client.model.json_api_data_source_in_document import JsonApiDataSourceInDocument
+from gooddata_api_client.model.json_api_data_source_out import JsonApiDataSourceOut
+from gooddata_api_client.model.json_api_data_source_out_attributes import JsonApiDataSourceOutAttributes
+from gooddata_api_client.model.json_api_data_source_out_document import JsonApiDataSourceOutDocument
+from gooddata_api_client.model.json_api_data_source_out_list import JsonApiDataSourceOutList
+from gooddata_api_client.model.json_api_data_source_out_with_links import JsonApiDataSourceOutWithLinks
+from gooddata_api_client.model.json_api_data_source_patch import JsonApiDataSourcePatch
+from gooddata_api_client.model.json_api_data_source_patch_attributes import JsonApiDataSourcePatchAttributes
+from gooddata_api_client.model.json_api_data_source_patch_document import JsonApiDataSourcePatchDocument
+from gooddata_api_client.model.json_api_data_source_table_out import JsonApiDataSourceTableOut
+from gooddata_api_client.model.json_api_data_source_table_out_attributes import JsonApiDataSourceTableOutAttributes
+from gooddata_api_client.model.json_api_data_source_table_out_attributes_columns_inner import JsonApiDataSourceTableOutAttributesColumnsInner
+from gooddata_api_client.model.json_api_data_source_table_out_document import JsonApiDataSourceTableOutDocument
+from gooddata_api_client.model.json_api_data_source_table_out_list import JsonApiDataSourceTableOutList
+from gooddata_api_client.model.json_api_data_source_table_out_with_links import JsonApiDataSourceTableOutWithLinks
+from gooddata_api_client.model.json_api_dataset_linkage import JsonApiDatasetLinkage
+from gooddata_api_client.model.json_api_dataset_out import JsonApiDatasetOut
+from gooddata_api_client.model.json_api_dataset_out_attributes import JsonApiDatasetOutAttributes
+from gooddata_api_client.model.json_api_dataset_out_attributes_grain_inner import JsonApiDatasetOutAttributesGrainInner
+from gooddata_api_client.model.json_api_dataset_out_attributes_reference_properties_inner import JsonApiDatasetOutAttributesReferencePropertiesInner
+from gooddata_api_client.model.json_api_dataset_out_document import JsonApiDatasetOutDocument
+from gooddata_api_client.model.json_api_dataset_out_includes import JsonApiDatasetOutIncludes
+from gooddata_api_client.model.json_api_dataset_out_list import JsonApiDatasetOutList
+from gooddata_api_client.model.json_api_dataset_out_relationships import JsonApiDatasetOutRelationships
+from gooddata_api_client.model.json_api_dataset_out_relationships_attributes import JsonApiDatasetOutRelationshipsAttributes
+from gooddata_api_client.model.json_api_dataset_out_relationships_facts import JsonApiDatasetOutRelationshipsFacts
+from gooddata_api_client.model.json_api_dataset_out_with_links import JsonApiDatasetOutWithLinks
+from gooddata_api_client.model.json_api_dataset_to_many_linkage import JsonApiDatasetToManyLinkage
+from gooddata_api_client.model.json_api_dataset_to_one_linkage import JsonApiDatasetToOneLinkage
+from gooddata_api_client.model.json_api_entitlement_out import JsonApiEntitlementOut
+from gooddata_api_client.model.json_api_entitlement_out_attributes import JsonApiEntitlementOutAttributes
+from gooddata_api_client.model.json_api_entitlement_out_document import JsonApiEntitlementOutDocument
+from gooddata_api_client.model.json_api_entitlement_out_list import JsonApiEntitlementOutList
+from gooddata_api_client.model.json_api_entitlement_out_with_links import JsonApiEntitlementOutWithLinks
+from gooddata_api_client.model.json_api_fact_linkage import JsonApiFactLinkage
+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_list import JsonApiFactOutList
+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.json_api_fact_to_many_linkage import JsonApiFactToManyLinkage
+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
+from gooddata_api_client.model.json_api_filter_context_out import JsonApiFilterContextOut
+from gooddata_api_client.model.json_api_filter_context_out_document import JsonApiFilterContextOutDocument
+from gooddata_api_client.model.json_api_filter_context_out_includes import JsonApiFilterContextOutIncludes
+from gooddata_api_client.model.json_api_filter_context_out_list import JsonApiFilterContextOutList
+from gooddata_api_client.model.json_api_filter_context_out_relationships import JsonApiFilterContextOutRelationships
+from gooddata_api_client.model.json_api_filter_context_out_with_links import JsonApiFilterContextOutWithLinks
+from gooddata_api_client.model.json_api_filter_context_patch import JsonApiFilterContextPatch
+from gooddata_api_client.model.json_api_filter_context_patch_document import JsonApiFilterContextPatchDocument
+from gooddata_api_client.model.json_api_filter_context_to_many_linkage import JsonApiFilterContextToManyLinkage
+from gooddata_api_client.model.json_api_label_linkage import JsonApiLabelLinkage
+from gooddata_api_client.model.json_api_label_out import JsonApiLabelOut
+from gooddata_api_client.model.json_api_label_out_attributes import JsonApiLabelOutAttributes
+from gooddata_api_client.model.json_api_label_out_document import JsonApiLabelOutDocument
+from gooddata_api_client.model.json_api_label_out_list import JsonApiLabelOutList
+from gooddata_api_client.model.json_api_label_out_relationships import JsonApiLabelOutRelationships
+from gooddata_api_client.model.json_api_label_out_relationships_attribute import JsonApiLabelOutRelationshipsAttribute
+from gooddata_api_client.model.json_api_label_out_with_links import JsonApiLabelOutWithLinks
+from gooddata_api_client.model.json_api_label_to_many_linkage import JsonApiLabelToManyLinkage
+from gooddata_api_client.model.json_api_label_to_one_linkage import JsonApiLabelToOneLinkage
+from gooddata_api_client.model.json_api_metric_in import JsonApiMetricIn
+from gooddata_api_client.model.json_api_metric_in_attributes import JsonApiMetricInAttributes
+from gooddata_api_client.model.json_api_metric_in_attributes_content import JsonApiMetricInAttributesContent
+from gooddata_api_client.model.json_api_metric_in_document import JsonApiMetricInDocument
+from gooddata_api_client.model.json_api_metric_linkage import JsonApiMetricLinkage
+from gooddata_api_client.model.json_api_metric_out import JsonApiMetricOut
+from gooddata_api_client.model.json_api_metric_out_document import JsonApiMetricOutDocument
+from gooddata_api_client.model.json_api_metric_out_includes import JsonApiMetricOutIncludes
+from gooddata_api_client.model.json_api_metric_out_list import JsonApiMetricOutList
+from gooddata_api_client.model.json_api_metric_out_relationships import JsonApiMetricOutRelationships
+from gooddata_api_client.model.json_api_metric_out_with_links import JsonApiMetricOutWithLinks
+from gooddata_api_client.model.json_api_metric_patch import JsonApiMetricPatch
+from gooddata_api_client.model.json_api_metric_patch_attributes import JsonApiMetricPatchAttributes
+from gooddata_api_client.model.json_api_metric_patch_document import JsonApiMetricPatchDocument
+from gooddata_api_client.model.json_api_metric_to_many_linkage import JsonApiMetricToManyLinkage
+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_out import JsonApiOrganizationOut
+from gooddata_api_client.model.json_api_organization_out_attributes import JsonApiOrganizationOutAttributes
+from gooddata_api_client.model.json_api_organization_out_document import JsonApiOrganizationOutDocument
+from gooddata_api_client.model.json_api_organization_out_includes import JsonApiOrganizationOutIncludes
+from gooddata_api_client.model.json_api_organization_out_meta import JsonApiOrganizationOutMeta
+from gooddata_api_client.model.json_api_organization_out_relationships import JsonApiOrganizationOutRelationships
+from gooddata_api_client.model.json_api_organization_out_relationships_bootstrap_user import JsonApiOrganizationOutRelationshipsBootstrapUser
+from gooddata_api_client.model.json_api_organization_out_relationships_bootstrap_user_group import JsonApiOrganizationOutRelationshipsBootstrapUserGroup
+from gooddata_api_client.model.json_api_organization_patch import JsonApiOrganizationPatch
+from gooddata_api_client.model.json_api_organization_patch_document import JsonApiOrganizationPatchDocument
+from gooddata_api_client.model.json_api_organization_setting_in import JsonApiOrganizationSettingIn
+from gooddata_api_client.model.json_api_organization_setting_in_attributes import JsonApiOrganizationSettingInAttributes
+from gooddata_api_client.model.json_api_organization_setting_in_document import JsonApiOrganizationSettingInDocument
+from gooddata_api_client.model.json_api_organization_setting_out import JsonApiOrganizationSettingOut
+from gooddata_api_client.model.json_api_organization_setting_out_document import JsonApiOrganizationSettingOutDocument
+from gooddata_api_client.model.json_api_organization_setting_out_list import JsonApiOrganizationSettingOutList
+from gooddata_api_client.model.json_api_organization_setting_out_with_links import JsonApiOrganizationSettingOutWithLinks
+from gooddata_api_client.model.json_api_organization_setting_patch import JsonApiOrganizationSettingPatch
+from gooddata_api_client.model.json_api_organization_setting_patch_document import JsonApiOrganizationSettingPatchDocument
+from gooddata_api_client.model.json_api_theme_in import JsonApiThemeIn
+from gooddata_api_client.model.json_api_theme_in_document import JsonApiThemeInDocument
+from gooddata_api_client.model.json_api_theme_out import JsonApiThemeOut
+from gooddata_api_client.model.json_api_theme_out_document import JsonApiThemeOutDocument
+from gooddata_api_client.model.json_api_theme_out_list import JsonApiThemeOutList
+from gooddata_api_client.model.json_api_theme_out_with_links import JsonApiThemeOutWithLinks
+from gooddata_api_client.model.json_api_theme_patch import JsonApiThemePatch
+from gooddata_api_client.model.json_api_theme_patch_document import JsonApiThemePatchDocument
+from gooddata_api_client.model.json_api_user_group_in import JsonApiUserGroupIn
+from gooddata_api_client.model.json_api_user_group_in_document import JsonApiUserGroupInDocument
+from gooddata_api_client.model.json_api_user_group_in_relationships import JsonApiUserGroupInRelationships
+from gooddata_api_client.model.json_api_user_group_in_relationships_parents import JsonApiUserGroupInRelationshipsParents
+from gooddata_api_client.model.json_api_user_group_linkage import JsonApiUserGroupLinkage
+from gooddata_api_client.model.json_api_user_group_out import JsonApiUserGroupOut
+from gooddata_api_client.model.json_api_user_group_out_document import JsonApiUserGroupOutDocument
+from gooddata_api_client.model.json_api_user_group_out_list import JsonApiUserGroupOutList
+from gooddata_api_client.model.json_api_user_group_out_with_links import JsonApiUserGroupOutWithLinks
+from gooddata_api_client.model.json_api_user_group_patch import JsonApiUserGroupPatch
+from gooddata_api_client.model.json_api_user_group_patch_document import JsonApiUserGroupPatchDocument
+from gooddata_api_client.model.json_api_user_group_to_many_linkage import JsonApiUserGroupToManyLinkage
+from gooddata_api_client.model.json_api_user_group_to_one_linkage import JsonApiUserGroupToOneLinkage
+from gooddata_api_client.model.json_api_user_in import JsonApiUserIn
+from gooddata_api_client.model.json_api_user_in_attributes import JsonApiUserInAttributes
+from gooddata_api_client.model.json_api_user_in_document import JsonApiUserInDocument
+from gooddata_api_client.model.json_api_user_in_relationships import JsonApiUserInRelationships
+from gooddata_api_client.model.json_api_user_linkage import JsonApiUserLinkage
+from gooddata_api_client.model.json_api_user_out import JsonApiUserOut
+from gooddata_api_client.model.json_api_user_out_document import JsonApiUserOutDocument
+from gooddata_api_client.model.json_api_user_out_list import JsonApiUserOutList
+from gooddata_api_client.model.json_api_user_out_with_links import JsonApiUserOutWithLinks
+from gooddata_api_client.model.json_api_user_patch import JsonApiUserPatch
+from gooddata_api_client.model.json_api_user_patch_document import JsonApiUserPatchDocument
+from gooddata_api_client.model.json_api_user_setting_in import JsonApiUserSettingIn
+from gooddata_api_client.model.json_api_user_setting_in_document import JsonApiUserSettingInDocument
+from gooddata_api_client.model.json_api_user_setting_out import JsonApiUserSettingOut
+from gooddata_api_client.model.json_api_user_setting_out_document import JsonApiUserSettingOutDocument
+from gooddata_api_client.model.json_api_user_setting_out_list import JsonApiUserSettingOutList
+from gooddata_api_client.model.json_api_user_setting_out_with_links import JsonApiUserSettingOutWithLinks
+from gooddata_api_client.model.json_api_user_to_one_linkage import JsonApiUserToOneLinkage
+from gooddata_api_client.model.json_api_visualization_object_in import JsonApiVisualizationObjectIn
+from gooddata_api_client.model.json_api_visualization_object_in_document import JsonApiVisualizationObjectInDocument
+from gooddata_api_client.model.json_api_visualization_object_linkage import JsonApiVisualizationObjectLinkage
+from gooddata_api_client.model.json_api_visualization_object_out import JsonApiVisualizationObjectOut
+from gooddata_api_client.model.json_api_visualization_object_out_document import JsonApiVisualizationObjectOutDocument
+from gooddata_api_client.model.json_api_visualization_object_out_list import JsonApiVisualizationObjectOutList
+from gooddata_api_client.model.json_api_visualization_object_out_with_links import JsonApiVisualizationObjectOutWithLinks
+from gooddata_api_client.model.json_api_visualization_object_patch import JsonApiVisualizationObjectPatch
+from gooddata_api_client.model.json_api_visualization_object_patch_document import JsonApiVisualizationObjectPatchDocument
+from gooddata_api_client.model.json_api_visualization_object_to_many_linkage import JsonApiVisualizationObjectToManyLinkage
+from gooddata_api_client.model.json_api_workspace_data_filter_in import JsonApiWorkspaceDataFilterIn
+from gooddata_api_client.model.json_api_workspace_data_filter_in_attributes import JsonApiWorkspaceDataFilterInAttributes
+from gooddata_api_client.model.json_api_workspace_data_filter_in_document import JsonApiWorkspaceDataFilterInDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_in_relationships import JsonApiWorkspaceDataFilterInRelationships
+from gooddata_api_client.model.json_api_workspace_data_filter_in_relationships_filter_settings import JsonApiWorkspaceDataFilterInRelationshipsFilterSettings
+from gooddata_api_client.model.json_api_workspace_data_filter_linkage import JsonApiWorkspaceDataFilterLinkage
+from gooddata_api_client.model.json_api_workspace_data_filter_out import JsonApiWorkspaceDataFilterOut
+from gooddata_api_client.model.json_api_workspace_data_filter_out_document import JsonApiWorkspaceDataFilterOutDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_out_list import JsonApiWorkspaceDataFilterOutList
+from gooddata_api_client.model.json_api_workspace_data_filter_out_with_links import JsonApiWorkspaceDataFilterOutWithLinks
+from gooddata_api_client.model.json_api_workspace_data_filter_patch import JsonApiWorkspaceDataFilterPatch
+from gooddata_api_client.model.json_api_workspace_data_filter_patch_document import JsonApiWorkspaceDataFilterPatchDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_linkage import JsonApiWorkspaceDataFilterSettingLinkage
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out import JsonApiWorkspaceDataFilterSettingOut
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_attributes import JsonApiWorkspaceDataFilterSettingOutAttributes
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_document import JsonApiWorkspaceDataFilterSettingOutDocument
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_list import JsonApiWorkspaceDataFilterSettingOutList
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_relationships import JsonApiWorkspaceDataFilterSettingOutRelationships
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_relationships_workspace_data_filter import JsonApiWorkspaceDataFilterSettingOutRelationshipsWorkspaceDataFilter
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_out_with_links import JsonApiWorkspaceDataFilterSettingOutWithLinks
+from gooddata_api_client.model.json_api_workspace_data_filter_setting_to_many_linkage import JsonApiWorkspaceDataFilterSettingToManyLinkage
+from gooddata_api_client.model.json_api_workspace_data_filter_to_one_linkage import JsonApiWorkspaceDataFilterToOneLinkage
+from gooddata_api_client.model.json_api_workspace_in import JsonApiWorkspaceIn
+from gooddata_api_client.model.json_api_workspace_in_attributes import JsonApiWorkspaceInAttributes
+from gooddata_api_client.model.json_api_workspace_in_document import JsonApiWorkspaceInDocument
+from gooddata_api_client.model.json_api_workspace_in_relationships import JsonApiWorkspaceInRelationships
+from gooddata_api_client.model.json_api_workspace_in_relationships_parent import JsonApiWorkspaceInRelationshipsParent
+from gooddata_api_client.model.json_api_workspace_linkage import JsonApiWorkspaceLinkage
+from gooddata_api_client.model.json_api_workspace_out import JsonApiWorkspaceOut
+from gooddata_api_client.model.json_api_workspace_out_document import JsonApiWorkspaceOutDocument
+from gooddata_api_client.model.json_api_workspace_out_list import JsonApiWorkspaceOutList
+from gooddata_api_client.model.json_api_workspace_out_meta import JsonApiWorkspaceOutMeta
+from gooddata_api_client.model.json_api_workspace_out_meta_config import JsonApiWorkspaceOutMetaConfig
+from gooddata_api_client.model.json_api_workspace_out_with_links import JsonApiWorkspaceOutWithLinks
+from gooddata_api_client.model.json_api_workspace_patch import JsonApiWorkspacePatch
+from gooddata_api_client.model.json_api_workspace_patch_document import JsonApiWorkspacePatchDocument
+from gooddata_api_client.model.json_api_workspace_setting_in import JsonApiWorkspaceSettingIn
+from gooddata_api_client.model.json_api_workspace_setting_in_document import JsonApiWorkspaceSettingInDocument
+from gooddata_api_client.model.json_api_workspace_setting_out import JsonApiWorkspaceSettingOut
+from gooddata_api_client.model.json_api_workspace_setting_out_document import JsonApiWorkspaceSettingOutDocument
+from gooddata_api_client.model.json_api_workspace_setting_out_list import JsonApiWorkspaceSettingOutList
+from gooddata_api_client.model.json_api_workspace_setting_out_with_links import JsonApiWorkspaceSettingOutWithLinks
+from gooddata_api_client.model.json_api_workspace_setting_patch import JsonApiWorkspaceSettingPatch
+from gooddata_api_client.model.json_api_workspace_setting_patch_document import JsonApiWorkspaceSettingPatchDocument
+from gooddata_api_client.model.json_api_workspace_to_one_linkage import JsonApiWorkspaceToOneLinkage
+from gooddata_api_client.model.label_identifier import LabelIdentifier
+from gooddata_api_client.model.list_links import ListLinks
+from gooddata_api_client.model.list_links_all_of import ListLinksAllOf
+from gooddata_api_client.model.measure_definition import MeasureDefinition
+from gooddata_api_client.model.measure_execution_result_header import MeasureExecutionResultHeader
+from gooddata_api_client.model.measure_group_headers import MeasureGroupHeaders
+from gooddata_api_client.model.measure_header_out import MeasureHeaderOut
+from gooddata_api_client.model.measure_item import MeasureItem
+from gooddata_api_client.model.measure_result_header import MeasureResultHeader
+from gooddata_api_client.model.measure_value_filter import MeasureValueFilter
+from gooddata_api_client.model.negative_attribute_filter import NegativeAttributeFilter
+from gooddata_api_client.model.negative_attribute_filter_negative_attribute_filter import NegativeAttributeFilterNegativeAttributeFilter
+from gooddata_api_client.model.object_links import ObjectLinks
+from gooddata_api_client.model.object_links_container import ObjectLinksContainer
+from gooddata_api_client.model.paging import Paging
+from gooddata_api_client.model.parameter import Parameter
+from gooddata_api_client.model.platform_usage import PlatformUsage
+from gooddata_api_client.model.platform_usage_request import PlatformUsageRequest
+from gooddata_api_client.model.pop_dataset import PopDataset
+from gooddata_api_client.model.pop_dataset_measure_definition import PopDatasetMeasureDefinition
+from gooddata_api_client.model.pop_dataset_measure_definition_previous_period_measure import PopDatasetMeasureDefinitionPreviousPeriodMeasure
+from gooddata_api_client.model.pop_date import PopDate
+from gooddata_api_client.model.pop_date_measure_definition import PopDateMeasureDefinition
+from gooddata_api_client.model.pop_date_measure_definition_over_period_measure import PopDateMeasureDefinitionOverPeriodMeasure
+from gooddata_api_client.model.pop_measure_definition import PopMeasureDefinition
+from gooddata_api_client.model.positive_attribute_filter import PositiveAttributeFilter
+from gooddata_api_client.model.positive_attribute_filter_positive_attribute_filter import PositiveAttributeFilterPositiveAttributeFilter
+from gooddata_api_client.model.range_measure_value_filter import RangeMeasureValueFilter
+from gooddata_api_client.model.range_measure_value_filter_range_measure_value_filter import RangeMeasureValueFilterRangeMeasureValueFilter
+from gooddata_api_client.model.ranking_filter import RankingFilter
+from gooddata_api_client.model.ranking_filter_ranking_filter import RankingFilterRankingFilter
+from gooddata_api_client.model.reference_identifier import ReferenceIdentifier
+from gooddata_api_client.model.relative_date_filter import RelativeDateFilter
+from gooddata_api_client.model.relative_date_filter_relative_date_filter import RelativeDateFilterRelativeDateFilter
+from gooddata_api_client.model.resolve_settings_request import ResolveSettingsRequest
+from gooddata_api_client.model.rest_api_identifier import RestApiIdentifier
+from gooddata_api_client.model.result_cache_metadata import ResultCacheMetadata
+from gooddata_api_client.model.result_dimension import ResultDimension
+from gooddata_api_client.model.result_dimension_header import ResultDimensionHeader
+from gooddata_api_client.model.result_spec import ResultSpec
+from gooddata_api_client.model.scan_request import ScanRequest
+from gooddata_api_client.model.scan_result_pdm import ScanResultPdm
+from gooddata_api_client.model.settings import Settings
+from gooddata_api_client.model.simple_measure_definition import SimpleMeasureDefinition
+from gooddata_api_client.model.simple_measure_definition_measure import SimpleMeasureDefinitionMeasure
+from gooddata_api_client.model.sort_key import SortKey
+from gooddata_api_client.model.sort_key_attribute import SortKeyAttribute
+from gooddata_api_client.model.sort_key_attribute_attribute import SortKeyAttributeAttribute
+from gooddata_api_client.model.sort_key_total import SortKeyTotal
+from gooddata_api_client.model.sort_key_total_total import SortKeyTotalTotal
+from gooddata_api_client.model.sort_key_value import SortKeyValue
+from gooddata_api_client.model.sort_key_value_value import SortKeyValueValue
+from gooddata_api_client.model.table_warning import TableWarning
+from gooddata_api_client.model.tabular_export_request import TabularExportRequest
+from gooddata_api_client.model.tabular_export_result import TabularExportResult
+from gooddata_api_client.model.test_definition_request import TestDefinitionRequest
+from gooddata_api_client.model.test_request import TestRequest
+from gooddata_api_client.model.test_response import TestResponse
+from gooddata_api_client.model.total import Total
+from gooddata_api_client.model.total_dimension import TotalDimension
+from gooddata_api_client.model.total_execution_result_header import TotalExecutionResultHeader
+from gooddata_api_client.model.total_result_header import TotalResultHeader
+from gooddata_api_client.model.user_group_identifier import UserGroupIdentifier
+from gooddata_api_client.model.workspace_identifier import WorkspaceIdentifier
diff --git a/gooddata-api-client/gooddata_api_client/rest.py b/gooddata-api-client/gooddata_api_client/rest.py
new file mode 100644
index 000000000..cc9e27616
--- /dev/null
+++ b/gooddata-api-client/gooddata_api_client/rest.py
@@ -0,0 +1,353 @@
+"""
+ 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 io
+import json
+import logging
+import re
+import ssl
+from urllib.parse import urlencode
+from urllib.parse import urlparse
+from urllib.request import proxy_bypass_environment
+import urllib3
+import ipaddress
+
+from gooddata_api_client.exceptions import ApiException, UnauthorizedException, ForbiddenException, NotFoundException, ServiceException, ApiValueError
+
+
+logger = logging.getLogger(__name__)
+
+
+class RESTResponse(io.IOBase):
+
+ def __init__(self, resp):
+ self.urllib3_response = resp
+ self.status = resp.status
+ self.reason = resp.reason
+ self.data = resp.data
+
+ def getheaders(self):
+ """Returns a dictionary of the response headers."""
+ return self.urllib3_response.getheaders()
+
+ def getheader(self, name, default=None):
+ """Returns a given response header."""
+ return self.urllib3_response.getheader(name, default)
+
+
+class RESTClientObject(object):
+
+ def __init__(self, configuration, pools_size=4, maxsize=None):
+ # urllib3.PoolManager will pass all kw parameters to connectionpool
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
+ # maxsize is the number of requests to host that are allowed in parallel # noqa: E501
+ # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
+
+ # cert_reqs
+ if configuration.verify_ssl:
+ cert_reqs = ssl.CERT_REQUIRED
+ else:
+ cert_reqs = ssl.CERT_NONE
+
+ addition_pool_args = {}
+ if configuration.assert_hostname is not None:
+ addition_pool_args['assert_hostname'] = configuration.assert_hostname # noqa: E501
+
+ if configuration.retries is not None:
+ addition_pool_args['retries'] = configuration.retries
+
+ if configuration.socket_options is not None:
+ addition_pool_args['socket_options'] = configuration.socket_options
+
+ if maxsize is None:
+ if configuration.connection_pool_maxsize is not None:
+ maxsize = configuration.connection_pool_maxsize
+ else:
+ maxsize = 4
+
+ # https pool manager
+ if configuration.proxy and not should_bypass_proxies(
+ configuration.host, no_proxy=configuration.no_proxy or ''):
+ self.pool_manager = urllib3.ProxyManager(
+ num_pools=pools_size,
+ maxsize=maxsize,
+ cert_reqs=cert_reqs,
+ ca_certs=configuration.ssl_ca_cert,
+ cert_file=configuration.cert_file,
+ key_file=configuration.key_file,
+ proxy_url=configuration.proxy,
+ proxy_headers=configuration.proxy_headers,
+ **addition_pool_args
+ )
+ else:
+ self.pool_manager = urllib3.PoolManager(
+ num_pools=pools_size,
+ maxsize=maxsize,
+ cert_reqs=cert_reqs,
+ ca_certs=configuration.ssl_ca_cert,
+ cert_file=configuration.cert_file,
+ key_file=configuration.key_file,
+ **addition_pool_args
+ )
+
+ def request(self, method, url, query_params=None, headers=None,
+ body=None, post_params=None, _preload_content=True,
+ _request_timeout=None):
+ """Perform requests.
+
+ :param method: http request method
+ :param url: http request url
+ :param query_params: query parameters in the url
+ :param headers: http request headers
+ :param body: request json body, for `application/json`
+ :param post_params: request post parameters,
+ `application/x-www-form-urlencoded`
+ and `multipart/form-data`
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is True.
+ :param _request_timeout: 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.
+ """
+ method = method.upper()
+ assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT',
+ 'PATCH', 'OPTIONS']
+
+ if post_params and body:
+ raise ApiValueError(
+ "body parameter cannot be used with post_params parameter."
+ )
+
+ post_params = post_params or {}
+ headers = headers or {}
+
+ timeout = None
+ if _request_timeout:
+ if isinstance(_request_timeout, (int, float)): # noqa: E501,F821
+ timeout = urllib3.Timeout(total=_request_timeout)
+ elif (isinstance(_request_timeout, tuple) and
+ len(_request_timeout) == 2):
+ timeout = urllib3.Timeout(
+ connect=_request_timeout[0], read=_request_timeout[1])
+
+ try:
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
+ if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
+ # Only set a default Content-Type for POST, PUT, PATCH and OPTIONS requests
+ if (method != 'DELETE') and ('Content-Type' not in headers):
+ headers['Content-Type'] = 'application/json'
+ if query_params:
+ url += '?' + urlencode(query_params)
+ if ('Content-Type' not in headers) or (re.search('json',
+ headers['Content-Type'], re.IGNORECASE)):
+ request_body = None
+ if body is not None:
+ request_body = json.dumps(body)
+ r = self.pool_manager.request(
+ method, url,
+ body=request_body,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ elif headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
+ r = self.pool_manager.request(
+ method, url,
+ fields=post_params,
+ encode_multipart=False,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ elif headers['Content-Type'] == 'multipart/form-data':
+ # must del headers['Content-Type'], or the correct
+ # Content-Type which generated by urllib3 will be
+ # overwritten.
+ del headers['Content-Type']
+ r = self.pool_manager.request(
+ method, url,
+ fields=post_params,
+ encode_multipart=True,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ # Pass a `string` parameter directly in the body to support
+ # other content types than Json when `body` argument is
+ # provided in serialized form
+ elif isinstance(body, str) or isinstance(body, bytes):
+ request_body = body
+ r = self.pool_manager.request(
+ method, url,
+ body=request_body,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ else:
+ # Cannot generate the request from given parameters
+ msg = """Cannot prepare a request message for provided
+ arguments. Please check that your arguments match
+ declared content type."""
+ raise ApiException(status=0, reason=msg)
+ # For `GET`, `HEAD`
+ else:
+ r = self.pool_manager.request(method, url,
+ fields=query_params,
+ preload_content=_preload_content,
+ timeout=timeout,
+ headers=headers)
+ except urllib3.exceptions.SSLError as e:
+ msg = "{0}\n{1}".format(type(e).__name__, str(e))
+ raise ApiException(status=0, reason=msg)
+
+ if _preload_content:
+ r = RESTResponse(r)
+
+ # log response body
+ logger.debug("response body: %s", r.data)
+
+ if not 200 <= r.status <= 299:
+ if r.status == 401:
+ raise UnauthorizedException(http_resp=r)
+
+ if r.status == 403:
+ raise ForbiddenException(http_resp=r)
+
+ if r.status == 404:
+ raise NotFoundException(http_resp=r)
+
+ if 500 <= r.status <= 599:
+ raise ServiceException(http_resp=r)
+
+ raise ApiException(http_resp=r)
+
+ return r
+
+ def GET(self, url, headers=None, query_params=None, _preload_content=True,
+ _request_timeout=None):
+ return self.request("GET", url,
+ headers=headers,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ query_params=query_params)
+
+ def HEAD(self, url, headers=None, query_params=None, _preload_content=True,
+ _request_timeout=None):
+ return self.request("HEAD", url,
+ headers=headers,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ query_params=query_params)
+
+ def OPTIONS(self, url, headers=None, query_params=None, post_params=None,
+ body=None, _preload_content=True, _request_timeout=None):
+ return self.request("OPTIONS", url,
+ headers=headers,
+ query_params=query_params,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+
+ def DELETE(self, url, headers=None, query_params=None, body=None,
+ _preload_content=True, _request_timeout=None):
+ return self.request("DELETE", url,
+ headers=headers,
+ query_params=query_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+
+ def POST(self, url, headers=None, query_params=None, post_params=None,
+ body=None, _preload_content=True, _request_timeout=None):
+ return self.request("POST", url,
+ headers=headers,
+ query_params=query_params,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+
+ def PUT(self, url, headers=None, query_params=None, post_params=None,
+ body=None, _preload_content=True, _request_timeout=None):
+ return self.request("PUT", url,
+ headers=headers,
+ query_params=query_params,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+
+ def PATCH(self, url, headers=None, query_params=None, post_params=None,
+ body=None, _preload_content=True, _request_timeout=None):
+ return self.request("PATCH", url,
+ headers=headers,
+ query_params=query_params,
+ post_params=post_params,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ body=body)
+
+# end of class RESTClientObject
+
+
+def is_ipv4(target):
+ """ Test if IPv4 address or not
+ """
+ try:
+ chk = ipaddress.IPv4Address(target)
+ return True
+ except ipaddress.AddressValueError:
+ return False
+
+
+def in_ipv4net(target, net):
+ """ Test if target belongs to given IPv4 network
+ """
+ try:
+ nw = ipaddress.IPv4Network(net)
+ ip = ipaddress.IPv4Address(target)
+ if ip in nw:
+ return True
+ return False
+ except ipaddress.AddressValueError:
+ return False
+ except ipaddress.NetmaskValueError:
+ return False
+
+
+def should_bypass_proxies(url, no_proxy=None):
+ """ Yet another requests.should_bypass_proxies
+ Test if proxies should not be used for a particular url.
+ """
+
+ parsed = urlparse(url)
+
+ # special cases
+ if parsed.hostname in [None, '']:
+ return True
+
+ # special cases
+ if no_proxy in [None, '']:
+ return False
+ if no_proxy == '*':
+ return True
+
+ no_proxy = no_proxy.lower().replace(' ', '');
+ entries = (
+ host for host in no_proxy.split(',') if host
+ )
+
+ if is_ipv4(parsed.hostname):
+ for item in entries:
+ if in_ipv4net(parsed.hostname, item):
+ return True
+ return proxy_bypass_environment(parsed.hostname, {'no': no_proxy})
diff --git a/gooddata-api-client/requirements.txt b/gooddata-api-client/requirements.txt
new file mode 100644
index 000000000..96947f604
--- /dev/null
+++ b/gooddata-api-client/requirements.txt
@@ -0,0 +1,3 @@
+python_dateutil >= 2.5.3
+setuptools >= 21.0.0
+urllib3 >= 1.25.3
diff --git a/gooddata-api-client/setup.cfg b/gooddata-api-client/setup.cfg
new file mode 100644
index 000000000..11433ee87
--- /dev/null
+++ b/gooddata-api-client/setup.cfg
@@ -0,0 +1,2 @@
+[flake8]
+max-line-length=99
diff --git a/gooddata-api-client/setup.py b/gooddata-api-client/setup.py
new file mode 100644
index 000000000..08d1d3586
--- /dev/null
+++ b/gooddata-api-client/setup.py
@@ -0,0 +1,49 @@
+"""
+ 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
+"""
+
+
+from setuptools import setup, find_packages # noqa: H301
+from pathlib import Path
+
+this_directory = Path(__file__).parent
+long_description = (this_directory / "README.md").read_text(encoding="utf-8")
+
+NAME = "gooddata-api-client"
+VERSION = "1.1.0"
+# To install the library, run the following
+#
+# python setup.py install
+#
+# prerequisite: setuptools
+# http://pypi.python.org/pypi/setuptools
+
+REQUIRES = [
+ "urllib3 >= 1.25.3",
+ "python-dateutil",
+]
+
+setup(
+ name=NAME,
+ version=VERSION,
+ description="OpenAPI definition",
+ author="GoodData (generated by OpenAPI Generator)",
+ author_email="support@gooddata.com",
+ url="",
+ keywords=["OpenAPI", "OpenAPI-Generator", "OpenAPI definition"],
+ python_requires=">=3.6",
+ install_requires=REQUIRES,
+ packages=find_packages(exclude=["test", "tests"]),
+ include_package_data=True,
+ license="MIT",
+ license_file="LICENSE.txt",
+ license_files=("LICENSE.txt",),
+ long_description=long_description,
+ long_description_content_type="text/markdown",
+)
diff --git a/gooddata-api-client/test-requirements.txt b/gooddata-api-client/test-requirements.txt
new file mode 100644
index 000000000..bb4f22bb7
--- /dev/null
+++ b/gooddata-api-client/test-requirements.txt
@@ -0,0 +1 @@
+pytest-cov>=2.8.1
diff --git a/gooddata-api-client/tox.ini b/gooddata-api-client/tox.ini
new file mode 100644
index 000000000..05261101a
--- /dev/null
+++ b/gooddata-api-client/tox.ini
@@ -0,0 +1,9 @@
+[tox]
+envlist = py3
+
+[testenv]
+deps=-r{toxinidir}/requirements.txt
+ -r{toxinidir}/test-requirements.txt
+
+commands=
+ pytest --cov=gooddata_api_client
diff --git a/gooddata-fdw/docs/requirements.txt b/gooddata-fdw/docs/requirements.txt
index c225355ff..6babd31c3 100644
--- a/gooddata-fdw/docs/requirements.txt
+++ b/gooddata-fdw/docs/requirements.txt
@@ -3,8 +3,6 @@ pallets-sphinx-themes
sphinx-rtd-theme
# Dependencies to the other projects in the repository
# CWD_TO_ROOT_RELATIVE defines path to root of repository - it can differ for tox and readthedocs builds
--e${CWD_TO_ROOT_RELATIVE}/gooddata-metadata-client
--e${CWD_TO_ROOT_RELATIVE}/gooddata-afm-client
--e${CWD_TO_ROOT_RELATIVE}/gooddata-scan-client
+-e${CWD_TO_ROOT_RELATIVE}/gooddata-api-client
-e${CWD_TO_ROOT_RELATIVE}/gooddata-sdk
-e${CWD_TO_ROOT_RELATIVE}/gooddata-fdw
diff --git a/gooddata-fdw/mypy.ini b/gooddata-fdw/mypy.ini
index e6e40c98e..64224f908 100644
--- a/gooddata-fdw/mypy.ini
+++ b/gooddata-fdw/mypy.ini
@@ -15,5 +15,8 @@ ignore_missing_imports = True
[mypy-gooddata_scan_client.*]
ignore_missing_imports = True
+[mypy-gooddata_api_client.*]
+ignore_missing_imports = True
+
[mypy-multicorn.*]
ignore_missing_imports = True
diff --git a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml
index a4aac6762..1062ecbf8 100644
--- a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml
+++ b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml
@@ -178,10 +178,10 @@ interactions:
name: Revenue
localIdentifier: dim_1
links:
- executionResult: 5cef7593b321e798b932155bc403724f8e68ee79
+ executionResult: a5e5fdd28b2e7b3e59c1f0f4b8ae7046f487d1cf
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5cef7593b321e798b932155bc403724f8e68ee79?offset=0%2C0&limit=512%2C256
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a5e5fdd28b2e7b3e59c1f0f4b8ae7046f487d1cf?offset=0%2C0&limit=512%2C256
body: null
headers:
Accept:
diff --git a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml
index 5602ebb06..d049108a8 100644
--- a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml
+++ b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml
@@ -134,10 +134,10 @@ interactions:
name: Revenue
localIdentifier: dim_0
links:
- executionResult: 77e40ebe8f769437de5a2380057e0cc4049b3290
+ executionResult: 1cae29c1976def45f44b6bbeb123b889138cb07e
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/77e40ebe8f769437de5a2380057e0cc4049b3290?offset=0&limit=256
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1cae29c1976def45f44b6bbeb123b889138cb07e?offset=0&limit=256
body: null
headers:
Accept:
diff --git a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml
index 2f0260e84..b177cea47 100644
--- a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml
+++ b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml
@@ -135,10 +135,10 @@ interactions:
name: Revenue
localIdentifier: dim_1
links:
- executionResult: 79a0a6e79886d215b1eb8a61667a747d6327bff5
+ executionResult: e9472a37b58f6a1dfcc06dbe41b439df0bee8759
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/79a0a6e79886d215b1eb8a61667a747d6327bff5?offset=0%2C0&limit=512%2C256
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e9472a37b58f6a1dfcc06dbe41b439df0bee8759?offset=0%2C0&limit=512%2C256
body: null
headers:
Accept:
diff --git a/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml b/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml
index 999d10ba7..d282a4080 100644
--- a/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml
+++ b/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4481'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,27 +53,27 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
attributes:
title: Revenue and Quantity by Product and Category
areRelationsValid: true
@@ -168,7 +170,6 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
relationships:
metrics:
data:
@@ -186,44 +187,45 @@ interactions:
data:
- id: product_name
type: label
- - id: customer_name
- type: label
- id: products.category
type: label
- type: visualizationObject
+ - id: customer_name
+ type: label
included:
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: revenue
+ type: metric
+ attributes:
title: Revenue
description: ''
content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
- type: metric
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: product_name
+ type: label
+ attributes:
title: Product name
description: Product name
tags:
@@ -231,11 +233,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -243,21 +245,21 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
- type: label
- - attributes:
+ - id: percent_revenue_in_category
+ type: metric
+ attributes:
title: '% Revenue in Category'
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
- type: metric
- - attributes:
+ - id: products.category
+ type: label
+ attributes:
title: Category
description: Category
tags:
@@ -265,10 +267,8 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL
- request:
@@ -447,10 +447,10 @@ interactions:
name: Revenue
localIdentifier: dim_1
links:
- executionResult: e65898b3186983da49569b538f5b5d2a56351b2b
+ executionResult: bb22bf365b1fef1274fb534971f5f706759d916e
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e65898b3186983da49569b538f5b5d2a56351b2b?offset=0%2C0&limit=512%2C256
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/bb22bf365b1fef1274fb534971f5f706759d916e?offset=0%2C0&limit=512%2C256
body: null
headers:
Accept:
diff --git a/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml b/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml
index 999d10ba7..d282a4080 100644
--- a/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml
+++ b/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4481'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,27 +53,27 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
attributes:
title: Revenue and Quantity by Product and Category
areRelationsValid: true
@@ -168,7 +170,6 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
relationships:
metrics:
data:
@@ -186,44 +187,45 @@ interactions:
data:
- id: product_name
type: label
- - id: customer_name
- type: label
- id: products.category
type: label
- type: visualizationObject
+ - id: customer_name
+ type: label
included:
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: revenue
+ type: metric
+ attributes:
title: Revenue
description: ''
content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
- type: metric
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: product_name
+ type: label
+ attributes:
title: Product name
description: Product name
tags:
@@ -231,11 +233,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -243,21 +245,21 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
- type: label
- - attributes:
+ - id: percent_revenue_in_category
+ type: metric
+ attributes:
title: '% Revenue in Category'
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
- type: metric
- - attributes:
+ - id: products.category
+ type: label
+ attributes:
title: Category
description: Category
tags:
@@ -265,10 +267,8 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL
- request:
@@ -447,10 +447,10 @@ interactions:
name: Revenue
localIdentifier: dim_1
links:
- executionResult: e65898b3186983da49569b538f5b5d2a56351b2b
+ executionResult: bb22bf365b1fef1274fb534971f5f706759d916e
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e65898b3186983da49569b538f5b5d2a56351b2b?offset=0%2C0&limit=512%2C256
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/bb22bf365b1fef1274fb534971f5f706759d916e?offset=0%2C0&limit=512%2C256
body: null
headers:
Accept:
diff --git a/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml b/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml
index 5f0d65888..161f6bd46 100644
--- a/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml
+++ b/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,533 +53,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -585,11 +587,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -597,11 +599,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -609,55 +611,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -665,33 +667,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -699,11 +701,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -711,11 +713,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -723,11 +725,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -735,11 +737,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -747,55 +749,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -803,22 +805,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -826,33 +828,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -860,11 +862,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -872,22 +874,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -895,11 +897,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -907,10 +909,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -928,7 +928,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -938,6 +938,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -963,28 +965,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1002,9 +1004,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1020,8 +1019,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1032,9 +1034,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1042,8 +1041,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1054,9 +1056,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1068,8 +1067,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1079,35 +1081,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1123,8 +1122,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1135,9 +1137,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1147,392 +1146,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1550,7 +1550,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1560,6 +1560,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1585,59 +1587,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1645,107 +1647,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1753,114 +1755,112 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
diff --git a/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml b/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml
index 06d4c831f..a5b6a158b 100644
--- a/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml
+++ b/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,533 +53,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -585,11 +587,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -597,11 +599,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -609,55 +611,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -665,33 +667,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -699,11 +701,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -711,11 +713,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -723,11 +725,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -735,11 +737,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -747,55 +749,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -803,22 +805,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -826,33 +828,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -860,11 +862,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -872,22 +874,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -895,11 +897,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -907,10 +909,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -928,7 +928,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -938,6 +938,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -963,28 +965,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1002,9 +1004,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1020,8 +1019,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1032,9 +1034,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1042,8 +1041,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1054,9 +1056,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1068,8 +1067,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1079,35 +1081,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1123,8 +1122,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1135,9 +1137,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1147,392 +1146,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1550,7 +1550,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1560,6 +1560,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1585,59 +1587,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1645,107 +1647,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1753,114 +1755,112 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
@@ -1878,7 +1878,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1888,6 +1888,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '29984'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1913,28 +1915,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_spend
+ type: visualizationObject
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
@@ -1995,9 +1997,6 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/campaign_spend
relationships:
metrics:
data:
@@ -2011,8 +2010,11 @@ interactions:
type: label
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/campaign_spend
+ - id: customers_trend
type: visualizationObject
- - attributes:
+ attributes:
title: Customers Trend
areRelationsValid: true
content:
@@ -2085,9 +2087,6 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/customers_trend
relationships:
metrics:
data:
@@ -2103,8 +2102,11 @@ interactions:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/customers_trend
+ - id: percent_revenue_per_product_by_customer_and_category
type: visualizationObject
- - attributes:
+ attributes:
title: '% Revenue per Product by Customer and Category'
areRelationsValid: true
content:
@@ -2180,9 +2182,6 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/percent_revenue_per_product_by_customer_and_category
relationships:
metrics:
data:
@@ -2198,8 +2197,11 @@ interactions:
type: label
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/percent_revenue_per_product_by_customer_and_category
+ - id: percentage_of_customers_by_region
type: visualizationObject
- - attributes:
+ attributes:
title: Percentage of Customers by Region
areRelationsValid: true
content:
@@ -2255,9 +2257,6 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/percentage_of_customers_by_region
relationships:
metrics:
data:
@@ -2273,8 +2272,11 @@ interactions:
type: label
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/percentage_of_customers_by_region
+ - id: product_breakdown
type: visualizationObject
- - attributes:
+ attributes:
title: Product Breakdown
areRelationsValid: true
content:
@@ -2328,9 +2330,6 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_breakdown
relationships:
metrics:
data:
@@ -2342,8 +2341,11 @@ interactions:
type: label
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_breakdown
+ - id: product_categories_pie_chart
type: visualizationObject
- - attributes:
+ attributes:
title: Product Categories Pie Chart
areRelationsValid: true
content:
@@ -2393,9 +2395,6 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_categories_pie_chart
relationships:
metrics:
data:
@@ -2407,8 +2406,11 @@ interactions:
type: label
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_categories_pie_chart
+ - id: product_revenue_comparison-over_previous_period
type: visualizationObject
- - attributes:
+ attributes:
title: Product Revenue Comparison (over previous period)
areRelationsValid: true
content:
@@ -2480,9 +2482,6 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_revenue_comparison-over_previous_period
relationships:
attributes:
data:
@@ -2502,8 +2501,11 @@ interactions:
type: label
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_revenue_comparison-over_previous_period
+ - id: product_saleability
type: visualizationObject
- - attributes:
+ attributes:
title: Product Saleability
areRelationsValid: true
content:
@@ -2557,9 +2559,6 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_saleability
relationships:
metrics:
data:
@@ -2571,8 +2570,11 @@ interactions:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_saleability
+ - id: revenue_and_quantity_by_product_and_category
type: visualizationObject
- - attributes:
+ attributes:
title: Revenue and Quantity by Product and Category
areRelationsValid: true
content:
@@ -2668,9 +2670,6 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category
relationships:
metrics:
data:
@@ -2692,8 +2691,11 @@ interactions:
type: label
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category
+ - id: revenue_by_category_trend
type: visualizationObject
- - attributes:
+ attributes:
title: Revenue by Category Trend
areRelationsValid: true
content:
@@ -2746,9 +2748,6 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_by_category_trend
relationships:
metrics:
data:
@@ -2764,8 +2763,11 @@ interactions:
type: label
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_by_category_trend
+ - id: revenue_by_product
type: visualizationObject
- - attributes:
+ attributes:
title: Revenue by Product
areRelationsValid: true
content:
@@ -2801,9 +2803,6 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_by_product
relationships:
metrics:
data:
@@ -2813,8 +2812,11 @@ interactions:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_by_product
+ - id: revenue_per_usd_vs_spend_by_campaign
type: visualizationObject
- - attributes:
+ attributes:
title: Revenue per $ vs Spend by Campaign
areRelationsValid: true
content:
@@ -2867,9 +2869,6 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_per_usd_vs_spend_by_campaign
relationships:
metrics:
data:
@@ -2881,8 +2880,11 @@ interactions:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_per_usd_vs_spend_by_campaign
+ - id: revenue_trend
type: visualizationObject
- - attributes:
+ attributes:
title: Revenue Trend
areRelationsValid: true
content:
@@ -2947,9 +2949,6 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_trend
relationships:
metrics:
data:
@@ -2965,8 +2964,11 @@ interactions:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_trend
+ - id: top_10_customers
type: visualizationObject
- - attributes:
+ attributes:
title: Top 10 Customers
areRelationsValid: true
content:
@@ -3020,9 +3022,6 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/top_10_customers
relationships:
metrics:
data:
@@ -3034,8 +3033,11 @@ interactions:
type: label
- id: state
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/top_10_customers
+ - id: top_10_products
type: visualizationObject
- - attributes:
+ attributes:
title: Top 10 Products
areRelationsValid: true
content:
@@ -3089,9 +3091,6 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/top_10_products
relationships:
metrics:
data:
@@ -3103,39 +3102,42 @@ interactions:
type: label
- id: products.category
type: label
- type: visualizationObject
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/top_10_products
included:
- - attributes:
+ - id: amount_of_orders
+ type: metric
+ attributes:
title: '# of Orders'
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
- type: metric
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: product_name
+ type: label
+ attributes:
title: Product name
description: Product name
tags:
@@ -3143,21 +3145,21 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
- type: label
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
- type: attribute
- - attributes:
+ - id: campaign_name
+ type: label
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -3165,80 +3167,80 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
- type: label
- - attributes:
+ - id: percent_revenue_in_category
+ type: metric
+ attributes:
title: '% Revenue in Category'
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
- type: metric
- - attributes:
+ - id: date.month
+ type: label
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
- type: label
- - attributes:
+ - id: percent_revenue_per_product
+ type: metric
+ attributes:
title: '% Revenue per Product'
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
- type: metric
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: date
+ type: dataset
+ attributes:
title: Date
description: ''
tags:
- Date
type: DATE
- id: date
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
- type: dataset
- - attributes:
+ - id: campaign_channels.category
+ type: label
+ attributes:
title: Category
description: Category
tags:
@@ -3246,11 +3248,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -3258,11 +3260,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -3270,11 +3272,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -3282,11 +3284,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -3294,20 +3296,20 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
- type: label
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
- type: metric
- - attributes:
+ - id: products.category
+ type: label
+ attributes:
title: Category
description: Category
tags:
@@ -3315,28 +3317,26 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
- type: label
- - attributes:
+ - id: campaign_spend
+ type: metric
+ attributes:
title: Campaign Spend
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects?include=ALL&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects?include=ALL&page=1&size=500
diff --git a/gooddata-fdw/tox.ini b/gooddata-fdw/tox.ini
index d29cc5a53..cdabf8e64 100644
--- a/gooddata-fdw/tox.ini
+++ b/gooddata-fdw/tox.ini
@@ -5,9 +5,7 @@ envlist = py310, py39, py38, py37
[testenv]
deps =
-r{toxinidir}/test-requirements.txt
- -e../gooddata-metadata-client
- -e../gooddata-afm-client
- -e../gooddata-scan-client
+ -e../gooddata-api-client
-e../gooddata-sdk
-e../tests-support
setenv=
@@ -20,10 +18,9 @@ basepython = python3.10
skip_install = true
deps =
-r{toxinidir}/type-requirements.txt
- -e../gooddata-metadata-client
- -e../gooddata-afm-client
- -e../gooddata-scan-client
+ -e../gooddata-api-client
-e../gooddata-sdk
+ -e../tests-support
commands =
mypy gooddata_fdw
diff --git a/gooddata-metadata-client/.openapi-generator/FILES b/gooddata-metadata-client/.openapi-generator/FILES
index 58672950a..ebcc4fddd 100644
--- a/gooddata-metadata-client/.openapi-generator/FILES
+++ b/gooddata-metadata-client/.openapi-generator/FILES
@@ -143,6 +143,7 @@ docs/JsonApiDataSourceIdentifierOutMeta.md
docs/JsonApiDataSourceIdentifierOutWithLinks.md
docs/JsonApiDataSourceIn.md
docs/JsonApiDataSourceInAttributes.md
+docs/JsonApiDataSourceInAttributesParametersInner.md
docs/JsonApiDataSourceInDocument.md
docs/JsonApiDataSourceOut.md
docs/JsonApiDataSourceOutAttributes.md
@@ -344,6 +345,7 @@ docs/ListLinks.md
docs/ListLinksAllOf.md
docs/ObjectLinks.md
docs/ObjectLinksContainer.md
+docs/Parameter.md
docs/PlatformUsage.md
docs/PlatformUsageRequest.md
docs/ReferenceIdentifier.md
@@ -501,6 +503,7 @@ gooddata_metadata_client/model/json_api_data_source_identifier_out_meta.py
gooddata_metadata_client/model/json_api_data_source_identifier_out_with_links.py
gooddata_metadata_client/model/json_api_data_source_in.py
gooddata_metadata_client/model/json_api_data_source_in_attributes.py
+gooddata_metadata_client/model/json_api_data_source_in_attributes_parameters_inner.py
gooddata_metadata_client/model/json_api_data_source_in_document.py
gooddata_metadata_client/model/json_api_data_source_out.py
gooddata_metadata_client/model/json_api_data_source_out_attributes.py
@@ -701,6 +704,7 @@ gooddata_metadata_client/model/list_links.py
gooddata_metadata_client/model/list_links_all_of.py
gooddata_metadata_client/model/object_links.py
gooddata_metadata_client/model/object_links_container.py
+gooddata_metadata_client/model/parameter.py
gooddata_metadata_client/model/platform_usage.py
gooddata_metadata_client/model/platform_usage_request.py
gooddata_metadata_client/model/reference_identifier.py
diff --git a/gooddata-metadata-client/README.md b/gooddata-metadata-client/README.md
index a2e59054d..d7ad155ad 100644
--- a/gooddata-metadata-client/README.md
+++ b/gooddata-metadata-client/README.md
@@ -94,7 +94,9 @@ Class | Method | HTTP request | Description
*ActionsApi* | [**particular_platform_usage**](docs/ActionsApi.md#particular_platform_usage) | **POST** /api/v1/actions/collectUsage | Info about the platform usage for particular items.
*ActionsApi* | [**register_upload_notification**](docs/ActionsApi.md#register_upload_notification) | **POST** /api/v1/actions/dataSources/{dataSourceId}/uploadNotification | Register an upload notification
*ActionsApi* | [**resolve_all_entitlements**](docs/ActionsApi.md#resolve_all_entitlements) | **GET** /api/v1/actions/resolveEntitlements | Values for all public entitlements.
+*ActionsApi* | [**resolve_all_settings_without_workspace**](docs/ActionsApi.md#resolve_all_settings_without_workspace) | **GET** /api/v1/actions/resolveSettings | Values for all settings without workspace.
*ActionsApi* | [**resolve_requested_entitlements**](docs/ActionsApi.md#resolve_requested_entitlements) | **POST** /api/v1/actions/resolveEntitlements | Values for requested public entitlements.
+*ActionsApi* | [**resolve_settings_without_workspace**](docs/ActionsApi.md#resolve_settings_without_workspace) | **POST** /api/v1/actions/resolveSettings | Values for selected settings without workspace.
*ActionsApi* | [**workspace_resolve_all_settings**](docs/ActionsApi.md#workspace_resolve_all_settings) | **GET** /api/v1/actions/workspaces/{workspaceId}/resolveSettings | Values for all settings.
*ActionsApi* | [**workspace_resolve_settings**](docs/ActionsApi.md#workspace_resolve_settings) | **POST** /api/v1/actions/workspaces/{workspaceId}/resolveSettings | Values for selected settings.
*EntitiesApi* | [**create_entity_analytical_dashboards**](docs/EntitiesApi.md#create_entity_analytical_dashboards) | **POST** /api/v1/entities/workspaces/{workspaceId}/analyticalDashboards |
@@ -391,6 +393,7 @@ Class | Method | HTTP request | Description
- [JsonApiDataSourceIdentifierOutWithLinks](docs/JsonApiDataSourceIdentifierOutWithLinks.md)
- [JsonApiDataSourceIn](docs/JsonApiDataSourceIn.md)
- [JsonApiDataSourceInAttributes](docs/JsonApiDataSourceInAttributes.md)
+ - [JsonApiDataSourceInAttributesParametersInner](docs/JsonApiDataSourceInAttributesParametersInner.md)
- [JsonApiDataSourceInDocument](docs/JsonApiDataSourceInDocument.md)
- [JsonApiDataSourceOut](docs/JsonApiDataSourceOut.md)
- [JsonApiDataSourceOutAttributes](docs/JsonApiDataSourceOutAttributes.md)
@@ -591,6 +594,7 @@ Class | Method | HTTP request | Description
- [ListLinksAllOf](docs/ListLinksAllOf.md)
- [ObjectLinks](docs/ObjectLinks.md)
- [ObjectLinksContainer](docs/ObjectLinksContainer.md)
+ - [Parameter](docs/Parameter.md)
- [PlatformUsage](docs/PlatformUsage.md)
- [PlatformUsageRequest](docs/PlatformUsageRequest.md)
- [ReferenceIdentifier](docs/ReferenceIdentifier.md)
diff --git a/gooddata-metadata-client/docs/ActionsApi.md b/gooddata-metadata-client/docs/ActionsApi.md
index 8ab2933e1..fcbfce88e 100644
--- a/gooddata-metadata-client/docs/ActionsApi.md
+++ b/gooddata-metadata-client/docs/ActionsApi.md
@@ -11,7 +11,9 @@ Method | HTTP request | Description
[**particular_platform_usage**](ActionsApi.md#particular_platform_usage) | **POST** /api/v1/actions/collectUsage | Info about the platform usage for particular items.
[**register_upload_notification**](ActionsApi.md#register_upload_notification) | **POST** /api/v1/actions/dataSources/{dataSourceId}/uploadNotification | Register an upload notification
[**resolve_all_entitlements**](ActionsApi.md#resolve_all_entitlements) | **GET** /api/v1/actions/resolveEntitlements | Values for all public entitlements.
+[**resolve_all_settings_without_workspace**](ActionsApi.md#resolve_all_settings_without_workspace) | **GET** /api/v1/actions/resolveSettings | Values for all settings without workspace.
[**resolve_requested_entitlements**](ActionsApi.md#resolve_requested_entitlements) | **POST** /api/v1/actions/resolveEntitlements | Values for requested public entitlements.
+[**resolve_settings_without_workspace**](ActionsApi.md#resolve_settings_without_workspace) | **POST** /api/v1/actions/resolveSettings | Values for selected settings without workspace.
[**workspace_resolve_all_settings**](ActionsApi.md#workspace_resolve_all_settings) | **GET** /api/v1/actions/workspaces/{workspaceId}/resolveSettings | Values for all settings.
[**workspace_resolve_settings**](ActionsApi.md#workspace_resolve_settings) | **POST** /api/v1/actions/workspaces/{workspaceId}/resolveSettings | Values for selected settings.
@@ -337,7 +339,7 @@ with gooddata_metadata_client.ApiClient() as api_client:
api_instance = actions_api.ActionsApi(api_client)
platform_usage_request = PlatformUsageRequest(
usage_item_names=[
- "WorkspaceCount",
+ "UserCount",
],
) # PlatformUsageRequest |
@@ -507,6 +509,69 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **resolve_all_settings_without_workspace**
+> [DeclarativeSetting] resolve_all_settings_without_workspace()
+
+Values for all settings without workspace.
+
+Resolves values for all settings without workspace by current user, organization, or default settings.
+
+### Example
+
+
+```python
+import time
+import gooddata_metadata_client
+from gooddata_metadata_client.api import actions_api
+from gooddata_metadata_client.model.declarative_setting import DeclarativeSetting
+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_metadata_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_metadata_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ # Values for all settings without workspace.
+ api_response = api_instance.resolve_all_settings_without_workspace()
+ pprint(api_response)
+ except gooddata_metadata_client.ApiException as e:
+ print("Exception when calling ActionsApi->resolve_all_settings_without_workspace: %s\n" % e)
+```
+
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**[DeclarativeSetting]**](DeclarativeSetting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Values for selected settings. | - |
+
+[[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)
+
# **resolve_requested_entitlements**
> [ApiEntitlement] resolve_requested_entitlements(entitlements_request)
@@ -579,6 +644,76 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **resolve_settings_without_workspace**
+> [DeclarativeSetting] resolve_settings_without_workspace(resolve_settings_request)
+
+Values for selected settings without workspace.
+
+Resolves values for selected settings without workspace by current user, organization, or default settings.
+
+### Example
+
+
+```python
+import time
+import gooddata_metadata_client
+from gooddata_metadata_client.api import actions_api
+from gooddata_metadata_client.model.resolve_settings_request import ResolveSettingsRequest
+from gooddata_metadata_client.model.declarative_setting import DeclarativeSetting
+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_metadata_client.Configuration(
+ host = "http://localhost"
+)
+
+
+# Enter a context with an instance of the API client
+with gooddata_metadata_client.ApiClient() as api_client:
+ # Create an instance of the API class
+ api_instance = actions_api.ActionsApi(api_client)
+ resolve_settings_request = ResolveSettingsRequest(
+ settings=["timezone"],
+ ) # ResolveSettingsRequest |
+
+ # example passing only required values which don't have defaults set
+ try:
+ # Values for selected settings without workspace.
+ api_response = api_instance.resolve_settings_without_workspace(resolve_settings_request)
+ pprint(api_response)
+ except gooddata_metadata_client.ApiException as e:
+ print("Exception when calling ActionsApi->resolve_settings_without_workspace: %s\n" % e)
+```
+
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **resolve_settings_request** | [**ResolveSettingsRequest**](ResolveSettingsRequest.md)| |
+
+### Return type
+
+[**[DeclarativeSetting]**](DeclarativeSetting.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Values for selected settings. | - |
+
+[[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)
+
# **workspace_resolve_all_settings**
> [DeclarativeSetting] workspace_resolve_all_settings(workspace_id)
diff --git a/gooddata-metadata-client/docs/DeclarativeAnalyticalDashboard.md b/gooddata-metadata-client/docs/DeclarativeAnalyticalDashboard.md
index 7a3db9db9..fb8eb816e 100644
--- a/gooddata-metadata-client/docs/DeclarativeAnalyticalDashboard.md
+++ b/gooddata-metadata-client/docs/DeclarativeAnalyticalDashboard.md
@@ -4,7 +4,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Custom setting content in JSON format. |
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
**id** | **str** | Analytical dashboard ID. |
**title** | **str** | Analytical dashboard title. |
**description** | **str** | Analytical dashboard description. | [optional]
diff --git a/gooddata-metadata-client/docs/DeclarativeColorPalette.md b/gooddata-metadata-client/docs/DeclarativeColorPalette.md
index 34b373572..72414681e 100644
--- a/gooddata-metadata-client/docs/DeclarativeColorPalette.md
+++ b/gooddata-metadata-client/docs/DeclarativeColorPalette.md
@@ -5,7 +5,7 @@ Color palette and its properties.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Custom setting content in JSON format. |
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
**id** | **str** | |
**name** | **str** | |
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
diff --git a/gooddata-metadata-client/docs/DeclarativeDashboardPlugin.md b/gooddata-metadata-client/docs/DeclarativeDashboardPlugin.md
index 7bfbf4436..92fac3c0e 100644
--- a/gooddata-metadata-client/docs/DeclarativeDashboardPlugin.md
+++ b/gooddata-metadata-client/docs/DeclarativeDashboardPlugin.md
@@ -4,7 +4,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Custom setting content in JSON format. |
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
**id** | **str** | Dashboard plugin object ID. |
**title** | **str** | Dashboard plugin object title. |
**description** | **str** | Dashboard plugin description. | [optional]
diff --git a/gooddata-metadata-client/docs/DeclarativeDataSource.md b/gooddata-metadata-client/docs/DeclarativeDataSource.md
index a6c515641..2faee5b21 100644
--- a/gooddata-metadata-client/docs/DeclarativeDataSource.md
+++ b/gooddata-metadata-client/docs/DeclarativeDataSource.md
@@ -9,13 +9,15 @@ Name | Type | Description | Notes
**name** | **str** | Name of the data source. |
**schema** | **str** | A scheme/database with the data. |
**type** | **str** | Type of database. |
-**url** | **str** | An connection string relevant to type of database. |
**cache_path** | **[str]** | Path to schema, where intermediate caches are stored. | [optional]
+**decoded_parameters** | [**[Parameter]**](Parameter.md) | | [optional]
**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
+**parameters** | [**[Parameter]**](Parameter.md) | | [optional]
**password** | **str** | Password for the data-source user, property is never returned back. | [optional]
**pdm** | [**DeclarativeTables**](DeclarativeTables.md) | | [optional]
**permissions** | [**[DeclarativeDataSourcePermission]**](DeclarativeDataSourcePermission.md) | | [optional]
**token** | **str** | Token as an alternative to username and password. | [optional]
+**url** | **str** | An connection string relevant to type of database. | [optional]
**username** | **str** | User with permission connect the data source/database. | [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-metadata-client/docs/DeclarativeFilterContext.md b/gooddata-metadata-client/docs/DeclarativeFilterContext.md
index 645a3d94f..f5af86feb 100644
--- a/gooddata-metadata-client/docs/DeclarativeFilterContext.md
+++ b/gooddata-metadata-client/docs/DeclarativeFilterContext.md
@@ -4,7 +4,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Custom setting content in JSON format. |
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
**id** | **str** | Filter Context ID. |
**title** | **str** | Filter Context title. |
**description** | **str** | Filter Context description. | [optional]
diff --git a/gooddata-metadata-client/docs/DeclarativeMetric.md b/gooddata-metadata-client/docs/DeclarativeMetric.md
index 92591a4cf..061bb3ba6 100644
--- a/gooddata-metadata-client/docs/DeclarativeMetric.md
+++ b/gooddata-metadata-client/docs/DeclarativeMetric.md
@@ -4,7 +4,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Custom setting content in JSON format. |
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
**id** | **str** | Metric ID. |
**title** | **str** | Metric title. |
**description** | **str** | Metric description. | [optional]
diff --git a/gooddata-metadata-client/docs/DeclarativeSetting.md b/gooddata-metadata-client/docs/DeclarativeSetting.md
index 6f185b8d5..77c4edf23 100644
--- a/gooddata-metadata-client/docs/DeclarativeSetting.md
+++ b/gooddata-metadata-client/docs/DeclarativeSetting.md
@@ -6,7 +6,7 @@ Setting and its value.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **str** | Setting ID. |
-**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Custom setting content in JSON format. | [optional]
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. | [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-metadata-client/docs/DeclarativeTheme.md b/gooddata-metadata-client/docs/DeclarativeTheme.md
index 4fb0337d8..b8b6c2cae 100644
--- a/gooddata-metadata-client/docs/DeclarativeTheme.md
+++ b/gooddata-metadata-client/docs/DeclarativeTheme.md
@@ -5,7 +5,7 @@ Theme and its properties.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Custom setting content in JSON format. |
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
**id** | **str** | |
**name** | **str** | |
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
diff --git a/gooddata-metadata-client/docs/DeclarativeVisualizationObject.md b/gooddata-metadata-client/docs/DeclarativeVisualizationObject.md
index c269a6c03..353780e51 100644
--- a/gooddata-metadata-client/docs/DeclarativeVisualizationObject.md
+++ b/gooddata-metadata-client/docs/DeclarativeVisualizationObject.md
@@ -4,7 +4,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | Custom setting content in JSON format. |
+**content** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}** | A server agnostic definition of the dashboard plugin in JSON format. |
**id** | **str** | Visualization object ID. |
**title** | **str** | Visualization object title. |
**description** | **str** | Visualization object description. | [optional]
diff --git a/gooddata-metadata-client/docs/EntitiesApi.md b/gooddata-metadata-client/docs/EntitiesApi.md
index 193974d9a..b2d3cf4c4 100644
--- a/gooddata-metadata-client/docs/EntitiesApi.md
+++ b/gooddata-metadata-client/docs/EntitiesApi.md
@@ -558,8 +558,14 @@ with gooddata_metadata_client.ApiClient() as api_client:
cache_path=[
"cache_path_example",
],
- enable_caching=True,
+ enable_caching=False,
name="name_example",
+ parameters=[
+ JsonApiDataSourceInAttributesParametersInner(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
password="password_example",
schema="schema_example",
token="token_example",
@@ -7659,8 +7665,14 @@ with gooddata_metadata_client.ApiClient() as api_client:
cache_path=[
"cache_path_example",
],
- enable_caching=True,
+ enable_caching=False,
name="name_example",
+ parameters=[
+ JsonApiDataSourceInAttributesParametersInner(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
password="password_example",
schema="schema_example",
token="token_example",
@@ -9331,8 +9343,14 @@ with gooddata_metadata_client.ApiClient() as api_client:
cache_path=[
"cache_path_example",
],
- enable_caching=True,
+ enable_caching=False,
name="name_example",
+ parameters=[
+ JsonApiDataSourceInAttributesParametersInner(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
password="password_example",
schema="schema_example",
token="token_example",
diff --git a/gooddata-metadata-client/docs/JsonApiDataSourceInAttributes.md b/gooddata-metadata-client/docs/JsonApiDataSourceInAttributes.md
index 9c85c740f..5818976ba 100644
--- a/gooddata-metadata-client/docs/JsonApiDataSourceInAttributes.md
+++ b/gooddata-metadata-client/docs/JsonApiDataSourceInAttributes.md
@@ -7,11 +7,12 @@ Name | Type | Description | Notes
**name** | **str** | |
**schema** | **str** | |
**type** | **str** | |
-**url** | **str** | |
**cache_path** | **[str]** | | [optional]
-**enable_caching** | **bool** | | [optional]
+**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
+**parameters** | [**[JsonApiDataSourceInAttributesParametersInner]**](JsonApiDataSourceInAttributesParametersInner.md) | | [optional]
**password** | **str** | | [optional]
**token** | **str** | | [optional]
+**url** | **str** | | [optional]
**username** | **str** | | [optional]
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
diff --git a/gooddata-metadata-client/docs/JsonApiDataSourceInAttributesParametersInner.md b/gooddata-metadata-client/docs/JsonApiDataSourceInAttributesParametersInner.md
new file mode 100644
index 000000000..cfafc7e30
--- /dev/null
+++ b/gooddata-metadata-client/docs/JsonApiDataSourceInAttributesParametersInner.md
@@ -0,0 +1,13 @@
+# JsonApiDataSourceInAttributesParametersInner
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+**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-metadata-client/docs/JsonApiDataSourceOutAttributes.md b/gooddata-metadata-client/docs/JsonApiDataSourceOutAttributes.md
index 8ad33903e..e08a5f8a9 100644
--- a/gooddata-metadata-client/docs/JsonApiDataSourceOutAttributes.md
+++ b/gooddata-metadata-client/docs/JsonApiDataSourceOutAttributes.md
@@ -7,9 +7,11 @@ Name | Type | Description | Notes
**name** | **str** | |
**schema** | **str** | |
**type** | **str** | |
-**url** | **str** | |
**cache_path** | **[str]** | | [optional]
-**enable_caching** | **bool** | | [optional]
+**decoded_parameters** | [**[JsonApiDataSourceInAttributesParametersInner]**](JsonApiDataSourceInAttributesParametersInner.md) | | [optional]
+**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
+**parameters** | [**[JsonApiDataSourceInAttributesParametersInner]**](JsonApiDataSourceInAttributesParametersInner.md) | | [optional]
+**url** | **str** | | [optional]
**username** | **str** | | [optional]
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
diff --git a/gooddata-metadata-client/docs/JsonApiDataSourcePatchAttributes.md b/gooddata-metadata-client/docs/JsonApiDataSourcePatchAttributes.md
index 7a2ee368e..39c40e6b8 100644
--- a/gooddata-metadata-client/docs/JsonApiDataSourcePatchAttributes.md
+++ b/gooddata-metadata-client/docs/JsonApiDataSourcePatchAttributes.md
@@ -5,8 +5,9 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**cache_path** | **[str]** | | [optional]
-**enable_caching** | **bool** | | [optional]
+**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
**name** | **str** | | [optional]
+**parameters** | [**[JsonApiDataSourceInAttributesParametersInner]**](JsonApiDataSourceInAttributesParametersInner.md) | | [optional]
**password** | **str** | | [optional]
**schema** | **str** | | [optional]
**token** | **str** | | [optional]
diff --git a/gooddata-metadata-client/docs/LayoutApi.md b/gooddata-metadata-client/docs/LayoutApi.md
index 4471a44ba..968a98849 100644
--- a/gooddata-metadata-client/docs/LayoutApi.md
+++ b/gooddata-metadata-client/docs/LayoutApi.md
@@ -850,9 +850,21 @@ with gooddata_metadata_client.ApiClient() as api_client:
cache_path=[
"[ "dfs", "data" ]. Example used in Apache Drill.",
],
+ decoded_parameters=[
+ Parameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
enable_caching=False,
id="pg_local_docker-demo",
name="postgres demo",
+ parameters=[
+ Parameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
password="*****",
pdm=DeclarativeTables(
tables=[
@@ -1681,9 +1693,21 @@ with gooddata_metadata_client.ApiClient() as api_client:
cache_path=[
"[ "dfs", "data" ]. Example used in Apache Drill.",
],
+ decoded_parameters=[
+ Parameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
enable_caching=False,
id="pg_local_docker-demo",
name="postgres demo",
+ parameters=[
+ Parameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
password="*****",
pdm=DeclarativeTables(
tables=[
diff --git a/gooddata-metadata-client/docs/Parameter.md b/gooddata-metadata-client/docs/Parameter.md
new file mode 100644
index 000000000..1c744126c
--- /dev/null
+++ b/gooddata-metadata-client/docs/Parameter.md
@@ -0,0 +1,13 @@
+# Parameter
+
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | |
+**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-metadata-client/gooddata_metadata_client/api/actions_api.py b/gooddata-metadata-client/gooddata_metadata_client/api/actions_api.py
index 835a8cd7d..fabd8d84c 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/api/actions_api.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/api/actions_api.py
@@ -387,6 +387,48 @@ def __init__(self, api_client=None):
},
api_client=api_client
)
+ self.resolve_all_settings_without_workspace_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([DeclarativeSetting],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/resolveSettings',
+ 'operation_id': 'resolve_all_settings_without_workspace',
+ 'http_method': 'GET',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ ],
+ 'required': [],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [],
+ },
+ api_client=api_client
+ )
self.resolve_requested_entitlements_endpoint = _Endpoint(
settings={
'response_type': ([ApiEntitlement],),
@@ -437,6 +479,56 @@ def __init__(self, api_client=None):
},
api_client=api_client
)
+ self.resolve_settings_without_workspace_endpoint = _Endpoint(
+ settings={
+ 'response_type': ([DeclarativeSetting],),
+ 'auth': [],
+ 'endpoint_path': '/api/v1/actions/resolveSettings',
+ 'operation_id': 'resolve_settings_without_workspace',
+ 'http_method': 'POST',
+ 'servers': None,
+ },
+ params_map={
+ 'all': [
+ 'resolve_settings_request',
+ ],
+ 'required': [
+ 'resolve_settings_request',
+ ],
+ 'nullable': [
+ ],
+ 'enum': [
+ ],
+ 'validation': [
+ ]
+ },
+ root_map={
+ 'validations': {
+ },
+ 'allowed_values': {
+ },
+ 'openapi_types': {
+ 'resolve_settings_request':
+ (ResolveSettingsRequest,),
+ },
+ 'attribute_map': {
+ },
+ 'location_map': {
+ 'resolve_settings_request': 'body',
+ },
+ 'collection_format_map': {
+ }
+ },
+ headers_map={
+ 'accept': [
+ 'application/json'
+ ],
+ 'content_type': [
+ 'application/json'
+ ]
+ },
+ api_client=api_client
+ )
self.workspace_resolve_all_settings_endpoint = _Endpoint(
settings={
'response_type': ([DeclarativeSetting],),
@@ -1122,6 +1214,84 @@ def resolve_all_entitlements(
kwargs['_request_auths'] = kwargs.get('_request_auths', None)
return self.resolve_all_entitlements_endpoint.call_with_http_info(**kwargs)
+ def resolve_all_settings_without_workspace(
+ self,
+ **kwargs
+ ):
+ """Values for all settings without workspace. # noqa: E501
+
+ Resolves values for all settings without workspace by current user, organization, or default settings. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.resolve_all_settings_without_workspace(async_req=True)
+ >>> result = thread.get()
+
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [DeclarativeSetting]
+ 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.resolve_all_settings_without_workspace_endpoint.call_with_http_info(**kwargs)
+
def resolve_requested_entitlements(
self,
entitlements_request,
@@ -1205,6 +1375,89 @@ def resolve_requested_entitlements(
entitlements_request
return self.resolve_requested_entitlements_endpoint.call_with_http_info(**kwargs)
+ def resolve_settings_without_workspace(
+ self,
+ resolve_settings_request,
+ **kwargs
+ ):
+ """Values for selected settings without workspace. # noqa: E501
+
+ Resolves values for selected settings without workspace by current user, organization, or default settings. # noqa: E501
+ This method makes a synchronous HTTP request by default. To make an
+ asynchronous HTTP request, please pass async_req=True
+
+ >>> thread = api.resolve_settings_without_workspace(resolve_settings_request, async_req=True)
+ >>> result = thread.get()
+
+ Args:
+ resolve_settings_request (ResolveSettingsRequest):
+
+ Keyword Args:
+ _return_http_data_only (bool): response data without head status
+ code and headers. Default is True.
+ _preload_content (bool): if False, the urllib3.HTTPResponse object
+ will be returned without reading/decoding response data.
+ Default is True.
+ _request_timeout (int/float/tuple): timeout setting for this request. If
+ one number provided, it will be total request timeout. It can also
+ be a pair (tuple) of (connection, read) timeouts.
+ Default is None.
+ _check_input_type (bool): specifies if type checking
+ should be done one the data sent to the server.
+ Default is True.
+ _check_return_type (bool): specifies if type checking
+ should be done one the data received from the server.
+ Default is True.
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _content_type (str/None): force body content-type.
+ Default is None and content-type will be predicted by allowed
+ content-types and body.
+ _host_index (int/None): specifies the index of the server
+ that we want to use.
+ Default is read from the configuration.
+ _request_auths (list): set to override the auth_settings for an a single
+ request; this effectively ignores the authentication
+ in the spec for a single request.
+ Default is None
+ async_req (bool): execute request asynchronously
+
+ Returns:
+ [DeclarativeSetting]
+ 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['resolve_settings_request'] = \
+ resolve_settings_request
+ return self.resolve_settings_without_workspace_endpoint.call_with_http_info(**kwargs)
+
def workspace_resolve_all_settings(
self,
workspace_id,
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/api_entitlement.py b/gooddata-metadata-client/gooddata_metadata_client/model/api_entitlement.py
index 48ed9cb22..e6629c36c 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/api_entitlement.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/api_entitlement.py
@@ -59,10 +59,13 @@ class ApiEntitlement(ModelNormal):
('name',): {
'CONTRACT': "Contract",
'CUSTOMTHEMING': "CustomTheming",
+ 'MANAGEDOIDC': "ManagedOIDC",
+ 'UILOCALIZATION': "UiLocalization",
'TIER': "Tier",
'USERCOUNT': "UserCount",
'UNLIMITEDUSERS': "UnlimitedUsers",
'UNLIMITEDWORKSPACES': "UnlimitedWorkspaces",
+ 'WHITELABELING': "WhiteLabeling",
'WORKSPACECOUNT': "WorkspaceCount",
},
}
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_analytical_dashboard.py b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_analytical_dashboard.py
index 48e977630..74fa8352b 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_analytical_dashboard.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_analytical_dashboard.py
@@ -120,7 +120,7 @@ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeAnalyticalDashboard - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Analytical dashboard ID.
title (str): Analytical dashboard title.
@@ -215,7 +215,7 @@ def __init__(self, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeAnalyticalDashboard - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Analytical dashboard ID.
title (str): Analytical dashboard title.
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_color_palette.py b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_color_palette.py
index e3747204d..5d6da0ced 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_color_palette.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_color_palette.py
@@ -109,7 +109,7 @@ def _from_openapi_data(cls, content, id, name, *args, **kwargs): # noqa: E501
"""DeclarativeColorPalette - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str):
name (str):
@@ -202,7 +202,7 @@ def __init__(self, content, id, name, *args, **kwargs): # noqa: E501
"""DeclarativeColorPalette - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str):
name (str):
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_dashboard_plugin.py b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_dashboard_plugin.py
index bd1299448..ef74e77c3 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_dashboard_plugin.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_dashboard_plugin.py
@@ -120,7 +120,7 @@ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeDashboardPlugin - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Dashboard plugin object ID.
title (str): Dashboard plugin object title.
@@ -215,7 +215,7 @@ def __init__(self, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeDashboardPlugin - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Dashboard plugin object ID.
title (str): Dashboard plugin object title.
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_data_source.py b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_data_source.py
index 1cb29c6a2..93c14036e 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_data_source.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_data_source.py
@@ -33,8 +33,10 @@
def lazy_import():
from gooddata_metadata_client.model.declarative_data_source_permission import DeclarativeDataSourcePermission
from gooddata_metadata_client.model.declarative_tables import DeclarativeTables
+ from gooddata_metadata_client.model.parameter import Parameter
globals()['DeclarativeDataSourcePermission'] = DeclarativeDataSourcePermission
globals()['DeclarativeTables'] = DeclarativeTables
+ globals()['Parameter'] = Parameter
class DeclarativeDataSource(ModelNormal):
@@ -111,13 +113,15 @@ def openapi_types():
'name': (str,), # noqa: E501
'schema': (str,), # noqa: E501
'type': (str,), # noqa: E501
- 'url': (str,), # noqa: E501
'cache_path': ([str],), # noqa: E501
+ 'decoded_parameters': ([Parameter],), # noqa: E501
'enable_caching': (bool,), # noqa: E501
+ 'parameters': ([Parameter],), # noqa: E501
'password': (str,), # noqa: E501
'pdm': (DeclarativeTables,), # noqa: E501
'permissions': ([DeclarativeDataSourcePermission],), # noqa: E501
'token': (str,), # noqa: E501
+ 'url': (str,), # noqa: E501
'username': (str,), # noqa: E501
}
@@ -131,13 +135,15 @@ def discriminator():
'name': 'name', # noqa: E501
'schema': 'schema', # noqa: E501
'type': 'type', # noqa: E501
- 'url': 'url', # noqa: E501
'cache_path': 'cachePath', # noqa: E501
+ 'decoded_parameters': 'decodedParameters', # noqa: E501
'enable_caching': 'enableCaching', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
'password': 'password', # noqa: E501
'pdm': 'pdm', # noqa: E501
'permissions': 'permissions', # noqa: E501
'token': 'token', # noqa: E501
+ 'url': 'url', # noqa: E501
'username': 'username', # noqa: E501
}
@@ -148,7 +154,7 @@ def discriminator():
@classmethod
@convert_js_args_to_python_args
- def _from_openapi_data(cls, id, name, schema, type, url, *args, **kwargs): # noqa: E501
+ def _from_openapi_data(cls, id, name, schema, type, *args, **kwargs): # noqa: E501
"""DeclarativeDataSource - a model defined in OpenAPI
Args:
@@ -156,7 +162,6 @@ def _from_openapi_data(cls, id, name, schema, type, url, *args, **kwargs): # no
name (str): Name of the data source.
schema (str): A scheme/database with the data.
type (str): Type of database.
- url (str): An connection string relevant to type of database.
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -190,11 +195,14 @@ def _from_openapi_data(cls, id, name, schema, type, url, *args, **kwargs): # no
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
cache_path ([str]): Path to schema, where intermediate caches are stored.. [optional] # noqa: E501
+ decoded_parameters ([Parameter]): [optional] # noqa: E501
enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([Parameter]): [optional] # noqa: E501
password (str): Password for the data-source user, property is never returned back.. [optional] # noqa: E501
pdm (DeclarativeTables): [optional] # noqa: E501
permissions ([DeclarativeDataSourcePermission]): [optional] # noqa: E501
token (str): Token as an alternative to username and password.. [optional] # noqa: E501
+ url (str): An connection string relevant to type of database.. [optional] # noqa: E501
username (str): User with permission connect the data source/database.. [optional] # noqa: E501
"""
@@ -231,7 +239,6 @@ def _from_openapi_data(cls, id, name, schema, type, url, *args, **kwargs): # no
self.name = name
self.schema = schema
self.type = type
- self.url = url
for var_name, var_value in kwargs.items():
if var_name not in self.attribute_map and \
self._configuration is not None and \
@@ -252,7 +259,7 @@ def _from_openapi_data(cls, id, name, schema, type, url, *args, **kwargs): # no
])
@convert_js_args_to_python_args
- def __init__(self, id, name, schema, type, url, *args, **kwargs): # noqa: E501
+ def __init__(self, id, name, schema, type, *args, **kwargs): # noqa: E501
"""DeclarativeDataSource - a model defined in OpenAPI
Args:
@@ -260,7 +267,6 @@ def __init__(self, id, name, schema, type, url, *args, **kwargs): # noqa: E501
name (str): Name of the data source.
schema (str): A scheme/database with the data.
type (str): Type of database.
- url (str): An connection string relevant to type of database.
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -294,11 +300,14 @@ def __init__(self, id, name, schema, type, url, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
cache_path ([str]): Path to schema, where intermediate caches are stored.. [optional] # noqa: E501
+ decoded_parameters ([Parameter]): [optional] # noqa: E501
enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([Parameter]): [optional] # noqa: E501
password (str): Password for the data-source user, property is never returned back.. [optional] # noqa: E501
pdm (DeclarativeTables): [optional] # noqa: E501
permissions ([DeclarativeDataSourcePermission]): [optional] # noqa: E501
token (str): Token as an alternative to username and password.. [optional] # noqa: E501
+ url (str): An connection string relevant to type of database.. [optional] # noqa: E501
username (str): User with permission connect the data source/database.. [optional] # noqa: E501
"""
@@ -333,7 +342,6 @@ def __init__(self, id, name, schema, type, url, *args, **kwargs): # noqa: E501
self.name = name
self.schema = schema
self.type = type
- self.url = url
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-metadata-client/gooddata_metadata_client/model/declarative_filter_context.py b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_filter_context.py
index ca8759768..4367762bd 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_filter_context.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_filter_context.py
@@ -120,7 +120,7 @@ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeFilterContext - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Filter Context ID.
title (str): Filter Context title.
@@ -215,7 +215,7 @@ def __init__(self, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeFilterContext - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Filter Context ID.
title (str): Filter Context title.
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_metric.py b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_metric.py
index 52eca8913..70a61b7dc 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_metric.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_metric.py
@@ -120,7 +120,7 @@ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeMetric - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Metric ID.
title (str): Metric title.
@@ -215,7 +215,7 @@ def __init__(self, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeMetric - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Metric ID.
title (str): Metric title.
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_setting.py b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_setting.py
index 8cda4e685..f7b773500 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_setting.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_setting.py
@@ -145,7 +145,7 @@ def _from_openapi_data(cls, id, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.. [optional] # noqa: E501
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
@@ -235,7 +235,7 @@ def __init__(self, id, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.. [optional] # noqa: E501
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_theme.py b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_theme.py
index afad9c34a..bae3b531d 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_theme.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_theme.py
@@ -109,7 +109,7 @@ def _from_openapi_data(cls, content, id, name, *args, **kwargs): # noqa: E501
"""DeclarativeTheme - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str):
name (str):
@@ -202,7 +202,7 @@ def __init__(self, content, id, name, *args, **kwargs): # noqa: E501
"""DeclarativeTheme - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str):
name (str):
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_visualization_object.py b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_visualization_object.py
index 46914cc19..152eb65c8 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/declarative_visualization_object.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/declarative_visualization_object.py
@@ -120,7 +120,7 @@ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeVisualizationObject - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Visualization object ID.
title (str): Visualization object title.
@@ -215,7 +215,7 @@ def __init__(self, content, id, title, *args, **kwargs): # noqa: E501
"""DeclarativeVisualizationObject - a model defined in OpenAPI
Args:
- content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): Custom setting content in JSON format.
+ content ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): A server agnostic definition of the dashboard plugin in JSON format.
id (str): Visualization object ID.
title (str): Visualization object title.
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/entitlements_request.py b/gooddata-metadata-client/gooddata_metadata_client/model/entitlements_request.py
index 4ccc5a2a8..179ab720c 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/entitlements_request.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/entitlements_request.py
@@ -59,10 +59,13 @@ class EntitlementsRequest(ModelNormal):
('entitlements_name',): {
'CONTRACT': "Contract",
'CUSTOMTHEMING': "CustomTheming",
+ 'MANAGEDOIDC': "ManagedOIDC",
+ 'UILOCALIZATION': "UiLocalization",
'TIER': "Tier",
'USERCOUNT': "UserCount",
'UNLIMITEDUSERS': "UnlimitedUsers",
'UNLIMITEDWORKSPACES': "UnlimitedWorkspaces",
+ 'WHITELABELING': "WhiteLabeling",
'WORKSPACECOUNT': "WorkspaceCount",
},
}
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_in_attributes.py b/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_in_attributes.py
index 1d40fed04..496dddc52 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_in_attributes.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_in_attributes.py
@@ -30,6 +30,10 @@
from gooddata_metadata_client.exceptions import ApiAttributeError
+def lazy_import():
+ from gooddata_metadata_client.model.json_api_data_source_in_attributes_parameters_inner import JsonApiDataSourceInAttributesParametersInner
+ globals()['JsonApiDataSourceInAttributesParametersInner'] = JsonApiDataSourceInAttributesParametersInner
+
class JsonApiDataSourceInAttributes(ModelNormal):
"""NOTE: This class is auto generated by OpenAPI Generator.
@@ -79,6 +83,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
@@ -93,15 +98,17 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'name': (str,), # noqa: E501
'schema': (str,), # noqa: E501
'type': (str,), # noqa: E501
- 'url': (str,), # noqa: E501
'cache_path': ([str],), # noqa: E501
'enable_caching': (bool,), # noqa: E501
+ 'parameters': ([JsonApiDataSourceInAttributesParametersInner],), # noqa: E501
'password': (str,), # noqa: E501
'token': (str,), # noqa: E501
+ 'url': (str,), # noqa: E501
'username': (str,), # noqa: E501
}
@@ -114,11 +121,12 @@ def discriminator():
'name': 'name', # noqa: E501
'schema': 'schema', # noqa: E501
'type': 'type', # noqa: E501
- 'url': 'url', # noqa: E501
'cache_path': 'cachePath', # noqa: E501
'enable_caching': 'enableCaching', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
'password': 'password', # noqa: E501
'token': 'token', # noqa: E501
+ 'url': 'url', # noqa: E501
'username': 'username', # noqa: E501
}
@@ -129,14 +137,13 @@ def discriminator():
@classmethod
@convert_js_args_to_python_args
- def _from_openapi_data(cls, name, schema, type, url, *args, **kwargs): # noqa: E501
+ def _from_openapi_data(cls, name, schema, type, *args, **kwargs): # noqa: E501
"""JsonApiDataSourceInAttributes - a model defined in OpenAPI
Args:
name (str):
schema (str):
type (str):
- url (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -170,9 +177,11 @@ def _from_openapi_data(cls, name, schema, type, url, *args, **kwargs): # noqa:
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
cache_path ([str]): [optional] # noqa: E501
- enable_caching (bool): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
password (str): [optional] # noqa: E501
token (str): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
username (str): [optional] # noqa: E501
"""
@@ -208,7 +217,6 @@ def _from_openapi_data(cls, name, schema, type, url, *args, **kwargs): # noqa:
self.name = name
self.schema = schema
self.type = type
- self.url = url
for var_name, var_value in kwargs.items():
if var_name not in self.attribute_map and \
self._configuration is not None and \
@@ -229,14 +237,13 @@ def _from_openapi_data(cls, name, schema, type, url, *args, **kwargs): # noqa:
])
@convert_js_args_to_python_args
- def __init__(self, name, schema, type, url, *args, **kwargs): # noqa: E501
+ def __init__(self, name, schema, type, *args, **kwargs): # noqa: E501
"""JsonApiDataSourceInAttributes - a model defined in OpenAPI
Args:
name (str):
schema (str):
type (str):
- url (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -270,9 +277,11 @@ def __init__(self, name, schema, type, url, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
cache_path ([str]): [optional] # noqa: E501
- enable_caching (bool): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
password (str): [optional] # noqa: E501
token (str): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
username (str): [optional] # noqa: E501
"""
@@ -306,7 +315,6 @@ def __init__(self, name, schema, type, url, *args, **kwargs): # noqa: E501
self.name = name
self.schema = schema
self.type = type
- self.url = url
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-metadata-client/gooddata_metadata_client/model/json_api_data_source_in_attributes_parameters_inner.py b/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_in_attributes_parameters_inner.py
new file mode 100644
index 000000000..131024eb7
--- /dev/null
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_in_attributes_parameters_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_metadata_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_metadata_client.exceptions import ApiAttributeError
+
+
+
+class JsonApiDataSourceInAttributesParametersInner(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 {
+ 'name': (str,), # noqa: E501
+ 'value': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'value': 'value', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, value, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceInAttributesParametersInner - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ 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.name = name
+ 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, name, value, *args, **kwargs): # noqa: E501
+ """JsonApiDataSourceInAttributesParametersInner - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ 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.name = name
+ 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-metadata-client/gooddata_metadata_client/model/json_api_data_source_out_attributes.py b/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_out_attributes.py
index 81c49a7d7..997f00bfb 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_out_attributes.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_out_attributes.py
@@ -30,6 +30,10 @@
from gooddata_metadata_client.exceptions import ApiAttributeError
+def lazy_import():
+ from gooddata_metadata_client.model.json_api_data_source_in_attributes_parameters_inner import JsonApiDataSourceInAttributesParametersInner
+ globals()['JsonApiDataSourceInAttributesParametersInner'] = JsonApiDataSourceInAttributesParametersInner
+
class JsonApiDataSourceOutAttributes(ModelNormal):
"""NOTE: This class is auto generated by OpenAPI Generator.
@@ -79,6 +83,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
@@ -93,13 +98,16 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'name': (str,), # noqa: E501
'schema': (str,), # noqa: E501
'type': (str,), # noqa: E501
- 'url': (str,), # noqa: E501
'cache_path': ([str],), # noqa: E501
+ 'decoded_parameters': ([JsonApiDataSourceInAttributesParametersInner],), # noqa: E501
'enable_caching': (bool,), # noqa: E501
+ 'parameters': ([JsonApiDataSourceInAttributesParametersInner],), # noqa: E501
+ 'url': (str,), # noqa: E501
'username': (str,), # noqa: E501
}
@@ -112,9 +120,11 @@ def discriminator():
'name': 'name', # noqa: E501
'schema': 'schema', # noqa: E501
'type': 'type', # noqa: E501
- 'url': 'url', # noqa: E501
'cache_path': 'cachePath', # noqa: E501
+ 'decoded_parameters': 'decodedParameters', # noqa: E501
'enable_caching': 'enableCaching', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
+ 'url': 'url', # noqa: E501
'username': 'username', # noqa: E501
}
@@ -125,14 +135,13 @@ def discriminator():
@classmethod
@convert_js_args_to_python_args
- def _from_openapi_data(cls, name, schema, type, url, *args, **kwargs): # noqa: E501
+ def _from_openapi_data(cls, name, schema, type, *args, **kwargs): # noqa: E501
"""JsonApiDataSourceOutAttributes - a model defined in OpenAPI
Args:
name (str):
schema (str):
type (str):
- url (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -166,7 +175,10 @@ def _from_openapi_data(cls, name, schema, type, url, *args, **kwargs): # noqa:
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
cache_path ([str]): [optional] # noqa: E501
- enable_caching (bool): [optional] # noqa: E501
+ decoded_parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
username (str): [optional] # noqa: E501
"""
@@ -202,7 +214,6 @@ def _from_openapi_data(cls, name, schema, type, url, *args, **kwargs): # noqa:
self.name = name
self.schema = schema
self.type = type
- self.url = url
for var_name, var_value in kwargs.items():
if var_name not in self.attribute_map and \
self._configuration is not None and \
@@ -223,14 +234,13 @@ def _from_openapi_data(cls, name, schema, type, url, *args, **kwargs): # noqa:
])
@convert_js_args_to_python_args
- def __init__(self, name, schema, type, url, *args, **kwargs): # noqa: E501
+ def __init__(self, name, schema, type, *args, **kwargs): # noqa: E501
"""JsonApiDataSourceOutAttributes - a model defined in OpenAPI
Args:
name (str):
schema (str):
type (str):
- url (str):
Keyword Args:
_check_type (bool): if True, values for parameters in openapi_types
@@ -264,7 +274,10 @@ def __init__(self, name, schema, type, url, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
cache_path ([str]): [optional] # noqa: E501
- enable_caching (bool): [optional] # noqa: E501
+ decoded_parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
+ url (str): [optional] # noqa: E501
username (str): [optional] # noqa: E501
"""
@@ -298,7 +311,6 @@ def __init__(self, name, schema, type, url, *args, **kwargs): # noqa: E501
self.name = name
self.schema = schema
self.type = type
- self.url = url
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-metadata-client/gooddata_metadata_client/model/json_api_data_source_patch_attributes.py b/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_patch_attributes.py
index 6e411680e..ea2a77176 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_patch_attributes.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/json_api_data_source_patch_attributes.py
@@ -30,6 +30,10 @@
from gooddata_metadata_client.exceptions import ApiAttributeError
+def lazy_import():
+ from gooddata_metadata_client.model.json_api_data_source_in_attributes_parameters_inner import JsonApiDataSourceInAttributesParametersInner
+ globals()['JsonApiDataSourceInAttributesParametersInner'] = JsonApiDataSourceInAttributesParametersInner
+
class JsonApiDataSourcePatchAttributes(ModelNormal):
"""NOTE: This class is auto generated by OpenAPI Generator.
@@ -79,6 +83,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
@@ -93,10 +98,12 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'cache_path': ([str],), # noqa: E501
'enable_caching': (bool,), # noqa: E501
'name': (str,), # noqa: E501
+ 'parameters': ([JsonApiDataSourceInAttributesParametersInner],), # noqa: E501
'password': (str,), # noqa: E501
'schema': (str,), # noqa: E501
'token': (str,), # noqa: E501
@@ -114,6 +121,7 @@ def discriminator():
'cache_path': 'cachePath', # noqa: E501
'enable_caching': 'enableCaching', # noqa: E501
'name': 'name', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
'password': 'password', # noqa: E501
'schema': 'schema', # noqa: E501
'token': 'token', # noqa: E501
@@ -164,8 +172,9 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
cache_path ([str]): [optional] # noqa: E501
- enable_caching (bool): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
name (str): [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
password (str): [optional] # noqa: E501
schema (str): [optional] # noqa: E501
token (str): [optional] # noqa: E501
@@ -258,8 +267,9 @@ def __init__(self, *args, **kwargs): # noqa: E501
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
cache_path ([str]): [optional] # noqa: E501
- enable_caching (bool): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
name (str): [optional] # noqa: E501
+ parameters ([JsonApiDataSourceInAttributesParametersInner]): [optional] # noqa: E501
password (str): [optional] # noqa: E501
schema (str): [optional] # noqa: E501
token (str): [optional] # noqa: E501
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/parameter.py b/gooddata-metadata-client/gooddata_metadata_client/model/parameter.py
new file mode 100644
index 000000000..fe5d8caa3
--- /dev/null
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/parameter.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_metadata_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_metadata_client.exceptions import ApiAttributeError
+
+
+
+class Parameter(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 {
+ 'name': (str,), # noqa: E501
+ 'value': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'value': 'value', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, value, *args, **kwargs): # noqa: E501
+ """Parameter - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ 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.name = name
+ 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, name, value, *args, **kwargs): # noqa: E501
+ """Parameter - a model defined in OpenAPI
+
+ Args:
+ name (str):
+ 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.name = name
+ 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-metadata-client/gooddata_metadata_client/model/platform_usage.py b/gooddata-metadata-client/gooddata_metadata_client/model/platform_usage.py
index a0572d0b8..7ef892175 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/platform_usage.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/platform_usage.py
@@ -57,8 +57,8 @@ class PlatformUsage(ModelNormal):
allowed_values = {
('name',): {
- 'WORKSPACECOUNT': "WorkspaceCount",
'USERCOUNT': "UserCount",
+ 'WORKSPACECOUNT': "WorkspaceCount",
},
}
diff --git a/gooddata-metadata-client/gooddata_metadata_client/model/platform_usage_request.py b/gooddata-metadata-client/gooddata_metadata_client/model/platform_usage_request.py
index 3bbb9d87a..4ec88d981 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/model/platform_usage_request.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/model/platform_usage_request.py
@@ -57,8 +57,8 @@ class PlatformUsageRequest(ModelNormal):
allowed_values = {
('usage_item_names',): {
- 'WORKSPACECOUNT': "WorkspaceCount",
'USERCOUNT': "UserCount",
+ 'WORKSPACECOUNT': "WorkspaceCount",
},
}
diff --git a/gooddata-metadata-client/gooddata_metadata_client/models/__init__.py b/gooddata-metadata-client/gooddata_metadata_client/models/__init__.py
index 67e40bc2f..cfd7b422c 100644
--- a/gooddata-metadata-client/gooddata_metadata_client/models/__init__.py
+++ b/gooddata-metadata-client/gooddata_metadata_client/models/__init__.py
@@ -150,6 +150,7 @@
from gooddata_metadata_client.model.json_api_data_source_identifier_out_with_links import JsonApiDataSourceIdentifierOutWithLinks
from gooddata_metadata_client.model.json_api_data_source_in import JsonApiDataSourceIn
from gooddata_metadata_client.model.json_api_data_source_in_attributes import JsonApiDataSourceInAttributes
+from gooddata_metadata_client.model.json_api_data_source_in_attributes_parameters_inner import JsonApiDataSourceInAttributesParametersInner
from gooddata_metadata_client.model.json_api_data_source_in_document import JsonApiDataSourceInDocument
from gooddata_metadata_client.model.json_api_data_source_out import JsonApiDataSourceOut
from gooddata_metadata_client.model.json_api_data_source_out_attributes import JsonApiDataSourceOutAttributes
@@ -350,6 +351,7 @@
from gooddata_metadata_client.model.list_links_all_of import ListLinksAllOf
from gooddata_metadata_client.model.object_links import ObjectLinks
from gooddata_metadata_client.model.object_links_container import ObjectLinksContainer
+from gooddata_metadata_client.model.parameter import Parameter
from gooddata_metadata_client.model.platform_usage import PlatformUsage
from gooddata_metadata_client.model.platform_usage_request import PlatformUsageRequest
from gooddata_metadata_client.model.reference_identifier import ReferenceIdentifier
diff --git a/gooddata-pandas/docs/requirements.txt b/gooddata-pandas/docs/requirements.txt
index 102dea707..af12aca4d 100644
--- a/gooddata-pandas/docs/requirements.txt
+++ b/gooddata-pandas/docs/requirements.txt
@@ -3,8 +3,6 @@ pallets-sphinx-themes
sphinx-rtd-theme
# Dependencies to the other projects in the repository
# CWD_TO_ROOT_RELATIVE defines path to root of repository - it can differ for tox and readthedocs builds
--e${CWD_TO_ROOT_RELATIVE}/gooddata-metadata-client
--e${CWD_TO_ROOT_RELATIVE}/gooddata-afm-client
--e${CWD_TO_ROOT_RELATIVE}/gooddata-scan-client
+-e${CWD_TO_ROOT_RELATIVE}/gooddata-api-client
-e${CWD_TO_ROOT_RELATIVE}/gooddata-sdk
-e${CWD_TO_ROOT_RELATIVE}/gooddata-pandas
diff --git a/gooddata-pandas/gooddata_pandas/dataframe.py b/gooddata-pandas/gooddata_pandas/dataframe.py
index 82690f888..090219c67 100644
--- a/gooddata-pandas/gooddata_pandas/dataframe.py
+++ b/gooddata-pandas/gooddata_pandas/dataframe.py
@@ -5,7 +5,7 @@
import pandas
-from gooddata_afm_client import apis, models
+from gooddata_api_client import models
from gooddata_pandas.data_access import compute_and_extract
from gooddata_pandas.result_convertor import LabelOverrides, convert_execution_response_to_dataframe
from gooddata_pandas.utils import (
@@ -346,7 +346,7 @@ def for_exec_result_id(
return convert_execution_response_to_dataframe(
execution_response=BareExecutionResponse(
- actions_api=apis.ActionsApi(self._sdk.client.afm_client),
+ actions_api=self._sdk.client.actions_api,
workspace_id=self._workspace_id,
execution_response=models.AfmExecutionResponse(
result_cache_metadata.execution_response, _check_type=False
diff --git a/gooddata-pandas/mypy.ini b/gooddata-pandas/mypy.ini
index 887781405..01977b14e 100644
--- a/gooddata-pandas/mypy.ini
+++ b/gooddata-pandas/mypy.ini
@@ -15,5 +15,8 @@ ignore_missing_imports = True
[mypy-gooddata_scan_client.*]
ignore_missing_imports = True
+[mypy-gooddata_api_client.*]
+ignore_missing_imports = True
+
[mypy-pandas.*]
ignore_missing_imports = True
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml
new file mode 100644
index 000000000..5a6eb85c6
--- /dev/null
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml
@@ -0,0 +1,1155 @@
+# (C) 2022 GoodData Corporation
+version: 1
+interactions:
+ - request:
+ method: POST
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute
+ body:
+ execution:
+ attributes:
+ - label:
+ identifier:
+ id: region
+ type: label
+ localIdentifier: region
+ - label:
+ identifier:
+ id: state
+ type: label
+ localIdentifier: state
+ - label:
+ identifier:
+ id: products.category
+ type: label
+ localIdentifier: product_category
+ filters: []
+ measures:
+ - definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ localIdentifier: price
+ - definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ localIdentifier: order_amount
+ resultSpec:
+ dimensions:
+ - itemIdentifiers:
+ - state
+ - region
+ localIdentifier: dim_0
+ - itemIdentifiers:
+ - product_category
+ - measureGroup
+ localIdentifier: dim_1
+ headers:
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '1097'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: &id001
+ - PLACEHOLDER
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '1980'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - state
+ - region
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - product_category
+ - measureGroup
+ sorting: []
+ totals: []
+ resultSize: 7085
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '11303'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ data:
+ - - 652.4
+ - 712.22
+ - 949.42
+ - 1198.83
+ - 759.31
+ - 927.48
+ - 3837.42
+ - 3837.42
+ - - 790.0
+ - 963.08
+ - 869.41
+ - 890.67
+ - 659.24
+ - 926.38
+ - 2664.71
+ - 2664.71
+ - - 2294.87
+ - 2725.93
+ - 2170.62
+ - 2380.37
+ - 2137.33
+ - 2158.09
+ - 3676.86
+ - 3676.86
+ - - 527.93
+ - 738.82
+ - 316.18
+ - 422.57
+ - 454.73
+ - 454.73
+ - 3384.84
+ - 3384.84
+ - - 11367.24
+ - 13561.15
+ - 11524.88
+ - 13729.96
+ - 8522.94
+ - 9700.71
+ - 25996.75
+ - 30393.45
+ - - 1478.95
+ - 1514.89
+ - 1839.72
+ - 2325.39
+ - 1030.04
+ - 1366.28
+ - 5663.31
+ - 5663.31
+ - - 871.42
+ - 1014.93
+ - 887.3
+ - 1048.14
+ - 594.45
+ - 594.45
+ - 538.99
+ - 538.99
+ - - 541.01
+ - 717.46
+ - 906.16
+ - 906.16
+ - 437.49
+ - 556.68
+ - 1355.06
+ - 1355.06
+ - - 2518.14
+ - 3019.08
+ - 3262.11
+ - 3945.61
+ - 3018.14
+ - 3554.04
+ - 7595.78
+ - 7595.78
+ - - 8476.07
+ - 10448.66
+ - 8258.54
+ - 10548.47
+ - 5960.21
+ - 6688.79
+ - 19294.85
+ - 25807.35
+ - - 1973.23
+ - 2601.99
+ - 1805.62
+ - 2152.51
+ - 1053.23
+ - 1294.96
+ - 5033.19
+ - 5985.75
+ - - 638.98
+ - 893.14
+ - 758.13
+ - 758.13
+ - 396.08
+ - 396.08
+ - 3426.72
+ - 3426.72
+ - - 316.43
+ - 454.71
+ - 299.91
+ - 383.62
+ - 96.27
+ - 178.1
+ - 1128.03
+ - 3384.09
+ - - 2018.99
+ - 2535.21
+ - 1936.08
+ - 2325.5
+ - 1644.01
+ - 1667.22
+ - 3205.41
+ - 3205.41
+ - - 963.25
+ - 1190.44
+ - 1115.49
+ - 1178.01
+ - 286.41
+ - 286.41
+ - 3617.55
+ - 3939.72
+ - - 1858.1
+ - 2263.12
+ - 1819.59
+ - 2474.87
+ - 1491.35
+ - 1491.35
+ - 3298.64
+ - 3542.07
+ - - 802.06
+ - 882.27
+ - 603.3
+ - 674.41
+ - 749.37
+ - 864.05
+ - 2349.06
+ - 2349.06
+ - - 1304.99
+ - 1671.49
+ - 1039.04
+ - 1153.3
+ - 311.97
+ - 311.97
+ - 223.09
+ - 446.18
+ - - 1274.22
+ - 1368.62
+ - 1727.11
+ - 1943.0
+ - 1324.48
+ - 1749.62
+ - 2185.98
+ - 2185.98
+ - - 1558.28
+ - 1952.49
+ - 952.3
+ - 1226.85
+ - 1563.19
+ - 2208.04
+ - 4344.16
+ - 6919.63
+ - - 955.93
+ - 1055.56
+ - 1051.5
+ - 1729.45
+ - 418.92
+ - 418.92
+ - 1624.52
+ - 1624.52
+ - - 989.47
+ - 1104.14
+ - 1581.46
+ - 1767.83
+ - 1817.19
+ - 2663.57
+ - 3357.3
+ - 5617.86
+ - - 1915.46
+ - 2369.61
+ - 2329.01
+ - 2826.18
+ - 1264.88
+ - 1311.02
+ - 2679.78
+ - 3157.96
+ - - 408.96
+ - 646.74
+ - 549.99
+ - 790.98
+ - 174.34
+ - 174.34
+ - 2834.07
+ - 2834.07
+ - - 2065.18
+ - 2541.12
+ - 1512.2
+ - 1961.18
+ - 1922.63
+ - 2653.67
+ - 3046.57
+ - 3763.37
+ - - 597.1
+ - 701.11
+ - 596.79
+ - 596.79
+ - 190.5
+ - 373.65
+ - null
+ - null
+ - - 586.37
+ - 742.46
+ - 770.11
+ - 770.11
+ - 535.43
+ - 535.43
+ - 666.19
+ - 666.19
+ - - 739.23
+ - 969.9
+ - 567.73
+ - 893.17
+ - 137.81
+ - 172.97
+ - null
+ - null
+ - - 220.46
+ - 360.16
+ - null
+ - null
+ - 161.73
+ - 161.73
+ - null
+ - null
+ - - 1007.04
+ - 1129.66
+ - 537.52
+ - 725.32
+ - 356.46
+ - 356.46
+ - 231.84
+ - 231.84
+ - - 462.58
+ - 523.96
+ - 540.36
+ - 540.36
+ - 326.03
+ - 440.93
+ - null
+ - null
+ - - 5004.64
+ - 6162.98
+ - 4631.73
+ - 6433.78
+ - 3316.02
+ - 3995.11
+ - 8734.63
+ - 13727.01
+ - - 1802.4
+ - 2176.17
+ - 1450.21
+ - 1686.28
+ - 1567.11
+ - 1704.0
+ - 4056.46
+ - 4879.18
+ - - 102.03
+ - 102.03
+ - 60.78
+ - 60.78
+ - 13.9
+ - 13.9
+ - null
+ - null
+ - - 3463.82
+ - 4467.47
+ - 3532.76
+ - 4133.16
+ - 2498.84
+ - 3377.52
+ - 4076.75
+ - 7939.25
+ - - 772.05
+ - 1048.43
+ - 876.39
+ - 876.39
+ - 771.44
+ - 858.2
+ - 6328.89
+ - 6328.89
+ - - 1213.9
+ - 1575.07
+ - 676.67
+ - 1173.63
+ - 801.92
+ - 801.92
+ - 1772.62
+ - 2074.55
+ - - 1677.18
+ - 2310.61
+ - 1746.76
+ - 2306.18
+ - 952.05
+ - 1078.41
+ - 9179.44
+ - 9706.62
+ - - 18.7
+ - 18.7
+ - null
+ - null
+ - null
+ - null
+ - null
+ - null
+ - - 1096.89
+ - 1259.77
+ - 541.59
+ - 541.59
+ - 612.65
+ - 612.65
+ - 1184.6
+ - 1184.6
+ - - 236.34
+ - 393.47
+ - 184.82
+ - 281.19
+ - 218.89
+ - 218.89
+ - null
+ - null
+ - - 1585.4
+ - 1995.05
+ - 1291.99
+ - 1291.99
+ - 616.68
+ - 616.68
+ - 1649.85
+ - 1886.52
+ - - 9041.19
+ - 11279.19
+ - 8688.2
+ - 10307.9
+ - 7196.91
+ - 8293.87
+ - 19327.65
+ - 22670.23
+ - - 1069.48
+ - 1394.01
+ - 1244.55
+ - 1429.29
+ - 835.05
+ - 835.05
+ - 5211.52
+ - 6042.93
+ - - 3201.61
+ - 3617.53
+ - 2547.68
+ - 2863.09
+ - 2806.15
+ - 3446.67
+ - 7141.49
+ - 7397.6
+ - - 978.06
+ - 1225.73
+ - 925.18
+ - 1010.03
+ - 528.25
+ - 973.49
+ - 3787.89
+ - 4246.86
+ - - 571.06
+ - 681.94
+ - 750.01
+ - 750.01
+ - 810.47
+ - 1176.32
+ - 523.09
+ - 523.09
+ - - 1869.53
+ - 2146.81
+ - 1813.39
+ - 2638.54
+ - 1321.08
+ - 1684.95
+ - 5646.42
+ - 5646.42
+ dimensionHeaders:
+ - headerGroups:
+ - headers:
+ - attributeHeader:
+ labelValue: Alabama
+ primaryLabelValue: Alabama
+ - attributeHeader:
+ labelValue: Alaska
+ primaryLabelValue: Alaska
+ - attributeHeader:
+ labelValue: Arizona
+ primaryLabelValue: Arizona
+ - attributeHeader:
+ labelValue: Arkansas
+ primaryLabelValue: Arkansas
+ - attributeHeader:
+ labelValue: California
+ primaryLabelValue: California
+ - attributeHeader:
+ labelValue: Colorado
+ primaryLabelValue: Colorado
+ - attributeHeader:
+ labelValue: Connecticut
+ primaryLabelValue: Connecticut
+ - attributeHeader:
+ labelValue: Delaware
+ primaryLabelValue: Delaware
+ - attributeHeader:
+ labelValue: District of Columbia
+ primaryLabelValue: District of Columbia
+ - attributeHeader:
+ labelValue: Florida
+ primaryLabelValue: Florida
+ - attributeHeader:
+ labelValue: Georgia
+ primaryLabelValue: Georgia
+ - attributeHeader:
+ labelValue: Hawaii
+ primaryLabelValue: Hawaii
+ - attributeHeader:
+ labelValue: Idaho
+ primaryLabelValue: Idaho
+ - attributeHeader:
+ labelValue: Illinois
+ primaryLabelValue: Illinois
+ - attributeHeader:
+ labelValue: Indiana
+ primaryLabelValue: Indiana
+ - attributeHeader:
+ labelValue: Iowa
+ primaryLabelValue: Iowa
+ - attributeHeader:
+ labelValue: Kansas
+ primaryLabelValue: Kansas
+ - attributeHeader:
+ labelValue: Kentucky
+ primaryLabelValue: Kentucky
+ - attributeHeader:
+ labelValue: Louisiana
+ primaryLabelValue: Louisiana
+ - attributeHeader:
+ labelValue: Maryland
+ primaryLabelValue: Maryland
+ - attributeHeader:
+ labelValue: Massachusetts
+ primaryLabelValue: Massachusetts
+ - attributeHeader:
+ labelValue: Michigan
+ primaryLabelValue: Michigan
+ - attributeHeader:
+ labelValue: Minnesota
+ primaryLabelValue: Minnesota
+ - attributeHeader:
+ labelValue: Mississippi
+ primaryLabelValue: Mississippi
+ - attributeHeader:
+ labelValue: Missouri
+ primaryLabelValue: Missouri
+ - attributeHeader:
+ labelValue: Montana
+ primaryLabelValue: Montana
+ - attributeHeader:
+ labelValue: Nebraska
+ primaryLabelValue: Nebraska
+ - attributeHeader:
+ labelValue: Nevada
+ primaryLabelValue: Nevada
+ - attributeHeader:
+ labelValue: New Hampshire
+ primaryLabelValue: New Hampshire
+ - attributeHeader:
+ labelValue: New Jersey
+ primaryLabelValue: New Jersey
+ - attributeHeader:
+ labelValue: New Mexico
+ primaryLabelValue: New Mexico
+ - attributeHeader:
+ labelValue: New York
+ primaryLabelValue: New York
+ - attributeHeader:
+ labelValue: North Carolina
+ primaryLabelValue: North Carolina
+ - attributeHeader:
+ labelValue: North Dakota
+ primaryLabelValue: North Dakota
+ - attributeHeader:
+ labelValue: Ohio
+ primaryLabelValue: Ohio
+ - attributeHeader:
+ labelValue: Oklahoma
+ primaryLabelValue: Oklahoma
+ - attributeHeader:
+ labelValue: Oregon
+ primaryLabelValue: Oregon
+ - attributeHeader:
+ labelValue: Pennsylvania
+ primaryLabelValue: Pennsylvania
+ - attributeHeader:
+ labelValue: Rhode Island
+ primaryLabelValue: Rhode Island
+ - attributeHeader:
+ labelValue: South Carolina
+ primaryLabelValue: South Carolina
+ - attributeHeader:
+ labelValue: South Dakota
+ primaryLabelValue: South Dakota
+ - attributeHeader:
+ labelValue: Tennessee
+ primaryLabelValue: Tennessee
+ - attributeHeader:
+ labelValue: Texas
+ primaryLabelValue: Texas
+ - attributeHeader:
+ labelValue: Utah
+ primaryLabelValue: Utah
+ - attributeHeader:
+ labelValue: Virginia
+ primaryLabelValue: Virginia
+ - attributeHeader:
+ labelValue: Washington
+ primaryLabelValue: Washington
+ - attributeHeader:
+ labelValue: West Virginia
+ primaryLabelValue: West Virginia
+ - attributeHeader:
+ labelValue: Wisconsin
+ primaryLabelValue: Wisconsin
+ - headers:
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: Unknown
+ primaryLabelValue: Unknown
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - headerGroups:
+ - headers:
+ - attributeHeader:
+ labelValue: Clothing
+ primaryLabelValue: Clothing
+ - attributeHeader:
+ labelValue: Clothing
+ primaryLabelValue: Clothing
+ - attributeHeader:
+ labelValue: Electronics
+ primaryLabelValue: Electronics
+ - attributeHeader:
+ labelValue: Electronics
+ primaryLabelValue: Electronics
+ - attributeHeader:
+ labelValue: Home
+ primaryLabelValue: Home
+ - attributeHeader:
+ labelValue: Home
+ primaryLabelValue: Home
+ - attributeHeader:
+ labelValue: Outdoor
+ primaryLabelValue: Outdoor
+ - attributeHeader:
+ labelValue: Outdoor
+ primaryLabelValue: Outdoor
+ - headers:
+ - measureHeader:
+ measureIndex: 0
+ - measureHeader:
+ measureIndex: 1
+ - measureHeader:
+ measureIndex: 0
+ - measureHeader:
+ measureIndex: 1
+ - measureHeader:
+ measureIndex: 0
+ - measureHeader:
+ measureIndex: 1
+ - measureHeader:
+ measureIndex: 0
+ - measureHeader:
+ measureIndex: 1
+ grandTotals: []
+ paging:
+ count:
+ - 48
+ - 8
+ offset:
+ - 0
+ - 0
+ total:
+ - 48
+ - 8
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml
new file mode 100644
index 000000000..5a6eb85c6
--- /dev/null
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml
@@ -0,0 +1,1155 @@
+# (C) 2022 GoodData Corporation
+version: 1
+interactions:
+ - request:
+ method: POST
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute
+ body:
+ execution:
+ attributes:
+ - label:
+ identifier:
+ id: region
+ type: label
+ localIdentifier: region
+ - label:
+ identifier:
+ id: state
+ type: label
+ localIdentifier: state
+ - label:
+ identifier:
+ id: products.category
+ type: label
+ localIdentifier: product_category
+ filters: []
+ measures:
+ - definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ localIdentifier: price
+ - definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ localIdentifier: order_amount
+ resultSpec:
+ dimensions:
+ - itemIdentifiers:
+ - state
+ - region
+ localIdentifier: dim_0
+ - itemIdentifiers:
+ - product_category
+ - measureGroup
+ localIdentifier: dim_1
+ headers:
+ Accept:
+ - application/json
+ Content-Type:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '1097'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: &id001
+ - PLACEHOLDER
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '1980'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - state
+ - region
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - product_category
+ - measureGroup
+ sorting: []
+ totals: []
+ resultSize: 7085
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '11303'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ data:
+ - - 652.4
+ - 712.22
+ - 949.42
+ - 1198.83
+ - 759.31
+ - 927.48
+ - 3837.42
+ - 3837.42
+ - - 790.0
+ - 963.08
+ - 869.41
+ - 890.67
+ - 659.24
+ - 926.38
+ - 2664.71
+ - 2664.71
+ - - 2294.87
+ - 2725.93
+ - 2170.62
+ - 2380.37
+ - 2137.33
+ - 2158.09
+ - 3676.86
+ - 3676.86
+ - - 527.93
+ - 738.82
+ - 316.18
+ - 422.57
+ - 454.73
+ - 454.73
+ - 3384.84
+ - 3384.84
+ - - 11367.24
+ - 13561.15
+ - 11524.88
+ - 13729.96
+ - 8522.94
+ - 9700.71
+ - 25996.75
+ - 30393.45
+ - - 1478.95
+ - 1514.89
+ - 1839.72
+ - 2325.39
+ - 1030.04
+ - 1366.28
+ - 5663.31
+ - 5663.31
+ - - 871.42
+ - 1014.93
+ - 887.3
+ - 1048.14
+ - 594.45
+ - 594.45
+ - 538.99
+ - 538.99
+ - - 541.01
+ - 717.46
+ - 906.16
+ - 906.16
+ - 437.49
+ - 556.68
+ - 1355.06
+ - 1355.06
+ - - 2518.14
+ - 3019.08
+ - 3262.11
+ - 3945.61
+ - 3018.14
+ - 3554.04
+ - 7595.78
+ - 7595.78
+ - - 8476.07
+ - 10448.66
+ - 8258.54
+ - 10548.47
+ - 5960.21
+ - 6688.79
+ - 19294.85
+ - 25807.35
+ - - 1973.23
+ - 2601.99
+ - 1805.62
+ - 2152.51
+ - 1053.23
+ - 1294.96
+ - 5033.19
+ - 5985.75
+ - - 638.98
+ - 893.14
+ - 758.13
+ - 758.13
+ - 396.08
+ - 396.08
+ - 3426.72
+ - 3426.72
+ - - 316.43
+ - 454.71
+ - 299.91
+ - 383.62
+ - 96.27
+ - 178.1
+ - 1128.03
+ - 3384.09
+ - - 2018.99
+ - 2535.21
+ - 1936.08
+ - 2325.5
+ - 1644.01
+ - 1667.22
+ - 3205.41
+ - 3205.41
+ - - 963.25
+ - 1190.44
+ - 1115.49
+ - 1178.01
+ - 286.41
+ - 286.41
+ - 3617.55
+ - 3939.72
+ - - 1858.1
+ - 2263.12
+ - 1819.59
+ - 2474.87
+ - 1491.35
+ - 1491.35
+ - 3298.64
+ - 3542.07
+ - - 802.06
+ - 882.27
+ - 603.3
+ - 674.41
+ - 749.37
+ - 864.05
+ - 2349.06
+ - 2349.06
+ - - 1304.99
+ - 1671.49
+ - 1039.04
+ - 1153.3
+ - 311.97
+ - 311.97
+ - 223.09
+ - 446.18
+ - - 1274.22
+ - 1368.62
+ - 1727.11
+ - 1943.0
+ - 1324.48
+ - 1749.62
+ - 2185.98
+ - 2185.98
+ - - 1558.28
+ - 1952.49
+ - 952.3
+ - 1226.85
+ - 1563.19
+ - 2208.04
+ - 4344.16
+ - 6919.63
+ - - 955.93
+ - 1055.56
+ - 1051.5
+ - 1729.45
+ - 418.92
+ - 418.92
+ - 1624.52
+ - 1624.52
+ - - 989.47
+ - 1104.14
+ - 1581.46
+ - 1767.83
+ - 1817.19
+ - 2663.57
+ - 3357.3
+ - 5617.86
+ - - 1915.46
+ - 2369.61
+ - 2329.01
+ - 2826.18
+ - 1264.88
+ - 1311.02
+ - 2679.78
+ - 3157.96
+ - - 408.96
+ - 646.74
+ - 549.99
+ - 790.98
+ - 174.34
+ - 174.34
+ - 2834.07
+ - 2834.07
+ - - 2065.18
+ - 2541.12
+ - 1512.2
+ - 1961.18
+ - 1922.63
+ - 2653.67
+ - 3046.57
+ - 3763.37
+ - - 597.1
+ - 701.11
+ - 596.79
+ - 596.79
+ - 190.5
+ - 373.65
+ - null
+ - null
+ - - 586.37
+ - 742.46
+ - 770.11
+ - 770.11
+ - 535.43
+ - 535.43
+ - 666.19
+ - 666.19
+ - - 739.23
+ - 969.9
+ - 567.73
+ - 893.17
+ - 137.81
+ - 172.97
+ - null
+ - null
+ - - 220.46
+ - 360.16
+ - null
+ - null
+ - 161.73
+ - 161.73
+ - null
+ - null
+ - - 1007.04
+ - 1129.66
+ - 537.52
+ - 725.32
+ - 356.46
+ - 356.46
+ - 231.84
+ - 231.84
+ - - 462.58
+ - 523.96
+ - 540.36
+ - 540.36
+ - 326.03
+ - 440.93
+ - null
+ - null
+ - - 5004.64
+ - 6162.98
+ - 4631.73
+ - 6433.78
+ - 3316.02
+ - 3995.11
+ - 8734.63
+ - 13727.01
+ - - 1802.4
+ - 2176.17
+ - 1450.21
+ - 1686.28
+ - 1567.11
+ - 1704.0
+ - 4056.46
+ - 4879.18
+ - - 102.03
+ - 102.03
+ - 60.78
+ - 60.78
+ - 13.9
+ - 13.9
+ - null
+ - null
+ - - 3463.82
+ - 4467.47
+ - 3532.76
+ - 4133.16
+ - 2498.84
+ - 3377.52
+ - 4076.75
+ - 7939.25
+ - - 772.05
+ - 1048.43
+ - 876.39
+ - 876.39
+ - 771.44
+ - 858.2
+ - 6328.89
+ - 6328.89
+ - - 1213.9
+ - 1575.07
+ - 676.67
+ - 1173.63
+ - 801.92
+ - 801.92
+ - 1772.62
+ - 2074.55
+ - - 1677.18
+ - 2310.61
+ - 1746.76
+ - 2306.18
+ - 952.05
+ - 1078.41
+ - 9179.44
+ - 9706.62
+ - - 18.7
+ - 18.7
+ - null
+ - null
+ - null
+ - null
+ - null
+ - null
+ - - 1096.89
+ - 1259.77
+ - 541.59
+ - 541.59
+ - 612.65
+ - 612.65
+ - 1184.6
+ - 1184.6
+ - - 236.34
+ - 393.47
+ - 184.82
+ - 281.19
+ - 218.89
+ - 218.89
+ - null
+ - null
+ - - 1585.4
+ - 1995.05
+ - 1291.99
+ - 1291.99
+ - 616.68
+ - 616.68
+ - 1649.85
+ - 1886.52
+ - - 9041.19
+ - 11279.19
+ - 8688.2
+ - 10307.9
+ - 7196.91
+ - 8293.87
+ - 19327.65
+ - 22670.23
+ - - 1069.48
+ - 1394.01
+ - 1244.55
+ - 1429.29
+ - 835.05
+ - 835.05
+ - 5211.52
+ - 6042.93
+ - - 3201.61
+ - 3617.53
+ - 2547.68
+ - 2863.09
+ - 2806.15
+ - 3446.67
+ - 7141.49
+ - 7397.6
+ - - 978.06
+ - 1225.73
+ - 925.18
+ - 1010.03
+ - 528.25
+ - 973.49
+ - 3787.89
+ - 4246.86
+ - - 571.06
+ - 681.94
+ - 750.01
+ - 750.01
+ - 810.47
+ - 1176.32
+ - 523.09
+ - 523.09
+ - - 1869.53
+ - 2146.81
+ - 1813.39
+ - 2638.54
+ - 1321.08
+ - 1684.95
+ - 5646.42
+ - 5646.42
+ dimensionHeaders:
+ - headerGroups:
+ - headers:
+ - attributeHeader:
+ labelValue: Alabama
+ primaryLabelValue: Alabama
+ - attributeHeader:
+ labelValue: Alaska
+ primaryLabelValue: Alaska
+ - attributeHeader:
+ labelValue: Arizona
+ primaryLabelValue: Arizona
+ - attributeHeader:
+ labelValue: Arkansas
+ primaryLabelValue: Arkansas
+ - attributeHeader:
+ labelValue: California
+ primaryLabelValue: California
+ - attributeHeader:
+ labelValue: Colorado
+ primaryLabelValue: Colorado
+ - attributeHeader:
+ labelValue: Connecticut
+ primaryLabelValue: Connecticut
+ - attributeHeader:
+ labelValue: Delaware
+ primaryLabelValue: Delaware
+ - attributeHeader:
+ labelValue: District of Columbia
+ primaryLabelValue: District of Columbia
+ - attributeHeader:
+ labelValue: Florida
+ primaryLabelValue: Florida
+ - attributeHeader:
+ labelValue: Georgia
+ primaryLabelValue: Georgia
+ - attributeHeader:
+ labelValue: Hawaii
+ primaryLabelValue: Hawaii
+ - attributeHeader:
+ labelValue: Idaho
+ primaryLabelValue: Idaho
+ - attributeHeader:
+ labelValue: Illinois
+ primaryLabelValue: Illinois
+ - attributeHeader:
+ labelValue: Indiana
+ primaryLabelValue: Indiana
+ - attributeHeader:
+ labelValue: Iowa
+ primaryLabelValue: Iowa
+ - attributeHeader:
+ labelValue: Kansas
+ primaryLabelValue: Kansas
+ - attributeHeader:
+ labelValue: Kentucky
+ primaryLabelValue: Kentucky
+ - attributeHeader:
+ labelValue: Louisiana
+ primaryLabelValue: Louisiana
+ - attributeHeader:
+ labelValue: Maryland
+ primaryLabelValue: Maryland
+ - attributeHeader:
+ labelValue: Massachusetts
+ primaryLabelValue: Massachusetts
+ - attributeHeader:
+ labelValue: Michigan
+ primaryLabelValue: Michigan
+ - attributeHeader:
+ labelValue: Minnesota
+ primaryLabelValue: Minnesota
+ - attributeHeader:
+ labelValue: Mississippi
+ primaryLabelValue: Mississippi
+ - attributeHeader:
+ labelValue: Missouri
+ primaryLabelValue: Missouri
+ - attributeHeader:
+ labelValue: Montana
+ primaryLabelValue: Montana
+ - attributeHeader:
+ labelValue: Nebraska
+ primaryLabelValue: Nebraska
+ - attributeHeader:
+ labelValue: Nevada
+ primaryLabelValue: Nevada
+ - attributeHeader:
+ labelValue: New Hampshire
+ primaryLabelValue: New Hampshire
+ - attributeHeader:
+ labelValue: New Jersey
+ primaryLabelValue: New Jersey
+ - attributeHeader:
+ labelValue: New Mexico
+ primaryLabelValue: New Mexico
+ - attributeHeader:
+ labelValue: New York
+ primaryLabelValue: New York
+ - attributeHeader:
+ labelValue: North Carolina
+ primaryLabelValue: North Carolina
+ - attributeHeader:
+ labelValue: North Dakota
+ primaryLabelValue: North Dakota
+ - attributeHeader:
+ labelValue: Ohio
+ primaryLabelValue: Ohio
+ - attributeHeader:
+ labelValue: Oklahoma
+ primaryLabelValue: Oklahoma
+ - attributeHeader:
+ labelValue: Oregon
+ primaryLabelValue: Oregon
+ - attributeHeader:
+ labelValue: Pennsylvania
+ primaryLabelValue: Pennsylvania
+ - attributeHeader:
+ labelValue: Rhode Island
+ primaryLabelValue: Rhode Island
+ - attributeHeader:
+ labelValue: South Carolina
+ primaryLabelValue: South Carolina
+ - attributeHeader:
+ labelValue: South Dakota
+ primaryLabelValue: South Dakota
+ - attributeHeader:
+ labelValue: Tennessee
+ primaryLabelValue: Tennessee
+ - attributeHeader:
+ labelValue: Texas
+ primaryLabelValue: Texas
+ - attributeHeader:
+ labelValue: Utah
+ primaryLabelValue: Utah
+ - attributeHeader:
+ labelValue: Virginia
+ primaryLabelValue: Virginia
+ - attributeHeader:
+ labelValue: Washington
+ primaryLabelValue: Washington
+ - attributeHeader:
+ labelValue: West Virginia
+ primaryLabelValue: West Virginia
+ - attributeHeader:
+ labelValue: Wisconsin
+ primaryLabelValue: Wisconsin
+ - headers:
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: Northeast
+ primaryLabelValue: Northeast
+ - attributeHeader:
+ labelValue: Unknown
+ primaryLabelValue: Unknown
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: West
+ primaryLabelValue: West
+ - attributeHeader:
+ labelValue: South
+ primaryLabelValue: South
+ - attributeHeader:
+ labelValue: Midwest
+ primaryLabelValue: Midwest
+ - headerGroups:
+ - headers:
+ - attributeHeader:
+ labelValue: Clothing
+ primaryLabelValue: Clothing
+ - attributeHeader:
+ labelValue: Clothing
+ primaryLabelValue: Clothing
+ - attributeHeader:
+ labelValue: Electronics
+ primaryLabelValue: Electronics
+ - attributeHeader:
+ labelValue: Electronics
+ primaryLabelValue: Electronics
+ - attributeHeader:
+ labelValue: Home
+ primaryLabelValue: Home
+ - attributeHeader:
+ labelValue: Home
+ primaryLabelValue: Home
+ - attributeHeader:
+ labelValue: Outdoor
+ primaryLabelValue: Outdoor
+ - attributeHeader:
+ labelValue: Outdoor
+ primaryLabelValue: Outdoor
+ - headers:
+ - measureHeader:
+ measureIndex: 0
+ - measureHeader:
+ measureIndex: 1
+ - measureHeader:
+ measureIndex: 0
+ - measureHeader:
+ measureIndex: 1
+ - measureHeader:
+ measureIndex: 0
+ - measureHeader:
+ measureIndex: 1
+ - measureHeader:
+ measureIndex: 0
+ - measureHeader:
+ measureIndex: 1
+ grandTotals: []
+ paging:
+ count:
+ - 48
+ - 8
+ offset:
+ - 0
+ - 0
+ total:
+ - 48
+ - 8
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml
index 6f4e4b366..3a2735d9c 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml
@@ -171,10 +171,182 @@ interactions:
name: Order Amount
localIdentifier: dim_0
links:
- executionResult: aecb2ec9e166189888f8c13af9bec40a274955c3
+ executionResult: 17b632097850c1249dbf2fa7ef42557c906fc3c5
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3?offset=0&limit=100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '1880'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_0
+ links:
+ executionResult: 17b632097850c1249dbf2fa7ef42557c906fc3c5
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - region
+ - state
+ - product_category
+ - measureGroup
+ sorting: []
+ totals: []
+ resultSize: 34939
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=0&limit=100
body: null
headers:
Accept:
@@ -1458,7 +1630,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3?offset=100&limit=100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=100&limit=100
body: null
headers:
Accept:
@@ -2742,7 +2914,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3?offset=200&limit=100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=200&limit=100
body: null
headers:
Accept:
@@ -4026,7 +4198,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3?offset=300&limit=100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=300&limit=100
body: null
headers:
Accept:
@@ -4878,7 +5050,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5/metadata
body: null
headers:
Accept:
@@ -4901,7 +5073,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1861'
+ - '1880'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -5036,7 +5208,7 @@ interactions:
name: Order Amount
localIdentifier: dim_0
links:
- executionResult: aecb2ec9e166189888f8c13af9bec40a274955c3
+ executionResult: 17b632097850c1249dbf2fa7ef42557c906fc3c5
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -5047,10 +5219,10 @@ interactions:
- measureGroup
sorting: []
totals: []
- resultSize: 2048
+ resultSize: 34939
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3?offset=0&limit=100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=0&limit=100
body: null
headers:
Accept:
@@ -6334,7 +6506,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=100&limit=100
body: null
headers:
Accept:
@@ -6357,179 +6529,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1861'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_0
- links:
- executionResult: aecb2ec9e166189888f8c13af9bec40a274955c3
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - region
- - state
- - product_category
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3?offset=100&limit=100
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '27695'
+ - '27695'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -7790,179 +7790,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '1861'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_0
- links:
- executionResult: aecb2ec9e166189888f8c13af9bec40a274955c3
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - region
- - state
- - product_category
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3?offset=200&limit=100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=200&limit=100
body: null
headers:
Accept:
@@ -9246,7 +9074,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=300&limit=100
body: null
headers:
Accept:
@@ -9269,179 +9097,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1861'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_0
- links:
- executionResult: aecb2ec9e166189888f8c13af9bec40a274955c3
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - region
- - state
- - product_category
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3?offset=300&limit=100
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '17067'
+ - '17067'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -10268,175 +9924,3 @@ interactions:
- 300
total:
- 364
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/aecb2ec9e166189888f8c13af9bec40a274955c3/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '1861'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_0
- links:
- executionResult: aecb2ec9e166189888f8c13af9bec40a274955c3
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - region
- - state
- - product_category
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml
index 02875a687..3664ec3ff 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml
@@ -175,10 +175,187 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: e1610ce81315a0e4a124f7f81127d8455e6fd3d9
+ executionResult: 7d29bd098f97b6c1de86055380b33edc3f31971d
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '1983'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers: []
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: 7d29bd098f97b6c1de86055380b33edc3f31971d
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers: []
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - region
+ - state
+ - product_category
+ - measureGroup
+ sorting: []
+ totals: []
+ resultSize: 34954
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -1466,7 +1643,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9?offset=0%2C100&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C100&limit=100%2C100
body: null
headers:
Accept:
@@ -2754,7 +2931,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9?offset=0%2C200&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C200&limit=100%2C100
body: null
headers:
Accept:
@@ -4042,7 +4219,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9?offset=0%2C300&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C300&limit=100%2C100
body: null
headers:
Accept:
@@ -4898,7 +5075,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d/metadata
body: null
headers:
Accept:
@@ -4921,7 +5098,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1964'
+ - '1983'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -5058,7 +5235,7 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: e1610ce81315a0e4a124f7f81127d8455e6fd3d9
+ executionResult: 7d29bd098f97b6c1de86055380b33edc3f31971d
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -5072,10 +5249,10 @@ interactions:
- measureGroup
sorting: []
totals: []
- resultSize: 2048
+ resultSize: 34954
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -6363,7 +6540,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C100&limit=100%2C100
body: null
headers:
Accept:
@@ -6386,184 +6563,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1964'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers: []
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: e1610ce81315a0e4a124f7f81127d8455e6fd3d9
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers: []
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - region
- - state
- - product_category
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9?offset=0%2C100&limit=100%2C100
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '27723'
+ - '27723'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -7828,7 +7828,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C200&limit=100%2C100
body: null
headers:
Accept:
@@ -7851,184 +7851,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1964'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers: []
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: e1610ce81315a0e4a124f7f81127d8455e6fd3d9
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers: []
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - region
- - state
- - product_category
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9?offset=0%2C200&limit=100%2C100
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '27315'
+ - '27315'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -9293,184 +9116,7 @@ interactions:
- 364
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '1964'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers: []
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: e1610ce81315a0e4a124f7f81127d8455e6fd3d9
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers: []
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - region
- - state
- - product_category
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9?offset=0%2C300&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C300&limit=100%2C100
body: null
headers:
Accept:
@@ -10324,180 +9970,3 @@ interactions:
total:
- 1
- 364
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e1610ce81315a0e4a124f7f81127d8455e6fd3d9/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '1964'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers: []
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: e1610ce81315a0e4a124f7f81127d8455e6fd3d9
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers: []
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - region
- - state
- - product_category
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml
index 5de5b6b87..0cae795a2 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml
@@ -194,10 +194,205 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: 74d684f9a04bcbf6429eca8ca5cf037bd31e8b24
+ executionResult: 23d0b5f5a16e315f3a49a4f27c5af33e3c854d90
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/74d684f9a04bcbf6429eca8ca5cf037bd31e8b24?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23d0b5f5a16e315f3a49a4f27c5af33e3c854d90/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '2341'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: 23d0b5f5a16e315f3a49a4f27c5af33e3c854d90
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - product_category
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - region
+ - state
+ - measureGroup
+ sorting: []
+ totals:
+ - localIdentifier: grand_total1
+ function: SUM
+ metric: price
+ totalDimensions:
+ - dimensionIdentifier: dim_1
+ totalDimensionItems:
+ - region
+ - state
+ - measureGroup
+ - localIdentifier: grand_total2
+ function: MAX
+ metric: order_amount
+ totalDimensions:
+ - dimensionIdentifier: dim_1
+ totalDimensionItems:
+ - region
+ - state
+ - measureGroup
+ resultSize: 11124
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23d0b5f5a16e315f3a49a4f27c5af33e3c854d90?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -1651,7 +1846,7 @@ interactions:
- 96
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/74d684f9a04bcbf6429eca8ca5cf037bd31e8b24/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23d0b5f5a16e315f3a49a4f27c5af33e3c854d90/metadata
body: null
headers:
Accept:
@@ -1674,7 +1869,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '2322'
+ - '2341'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1811,7 +2006,7 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: 74d684f9a04bcbf6429eca8ca5cf037bd31e8b24
+ executionResult: 23d0b5f5a16e315f3a49a4f27c5af33e3c854d90
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -1843,10 +2038,10 @@ interactions:
- region
- state
- measureGroup
- resultSize: 2048
+ resultSize: 11124
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/74d684f9a04bcbf6429eca8ca5cf037bd31e8b24?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23d0b5f5a16e315f3a49a4f27c5af33e3c854d90?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -3298,198 +3493,3 @@ interactions:
total:
- 4
- 96
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/74d684f9a04bcbf6429eca8ca5cf037bd31e8b24/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '2322'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: 74d684f9a04bcbf6429eca8ca5cf037bd31e8b24
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - product_category
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - region
- - state
- - measureGroup
- sorting: []
- totals:
- - localIdentifier: grand_total1
- function: SUM
- metric: price
- totalDimensions:
- - dimensionIdentifier: dim_1
- totalDimensionItems:
- - region
- - state
- - measureGroup
- - localIdentifier: grand_total2
- function: MAX
- metric: order_amount
- totalDimensions:
- - dimensionIdentifier: dim_1
- totalDimensionItems:
- - region
- - state
- - measureGroup
- resultSize: 2048
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml
index 5d3ac39f5..1b3152be2 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml
@@ -192,10 +192,203 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: cde98dbc99534858f98bbe57d0a6cdf13f9a230e
+ executionResult: f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cde98dbc99534858f98bbe57d0a6cdf13f9a230e?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '2323'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - region
+ - product_category
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - state
+ - measureGroup
+ sorting: []
+ totals:
+ - localIdentifier: grand_total1
+ function: SUM
+ metric: price
+ totalDimensions:
+ - dimensionIdentifier: dim_1
+ totalDimensionItems:
+ - state
+ - measureGroup
+ - localIdentifier: grand_total2
+ function: MAX
+ metric: order_amount
+ totalDimensions:
+ - dimensionIdentifier: dim_1
+ totalDimensionItems:
+ - state
+ - measureGroup
+ resultSize: 12250
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -2704,7 +2897,7 @@ interactions:
- 96
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cde98dbc99534858f98bbe57d0a6cdf13f9a230e/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888/metadata
body: null
headers:
Accept:
@@ -2727,7 +2920,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '2304'
+ - '2323'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2864,7 +3057,7 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: cde98dbc99534858f98bbe57d0a6cdf13f9a230e
+ executionResult: f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -2894,10 +3087,10 @@ interactions:
totalDimensionItems:
- state
- measureGroup
- resultSize: 2048
+ resultSize: 12250
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cde98dbc99534858f98bbe57d0a6cdf13f9a230e?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -5404,196 +5597,3 @@ interactions:
total:
- 17
- 96
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cde98dbc99534858f98bbe57d0a6cdf13f9a230e/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '2304'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: cde98dbc99534858f98bbe57d0a6cdf13f9a230e
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - region
- - product_category
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - state
- - measureGroup
- sorting: []
- totals:
- - localIdentifier: grand_total1
- function: SUM
- metric: price
- totalDimensions:
- - dimensionIdentifier: dim_1
- totalDimensionItems:
- - state
- - measureGroup
- - localIdentifier: grand_total2
- function: MAX
- metric: order_amount
- totalDimensions:
- - dimensionIdentifier: dim_1
- totalDimensionItems:
- - state
- - measureGroup
- resultSize: 2048
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml
index 5f6db814c..59fd7ba88 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml
@@ -194,10 +194,205 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 12567b4da97a90b945422ad66255a788e9fe44f6
+ executionResult: a4506d758df1e0244e029f1da155c2a3493311db
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/12567b4da97a90b945422ad66255a788e9fe44f6?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4506d758df1e0244e029f1da155c2a3493311db/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '2341'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ localIdentifier: dim_1
+ links:
+ executionResult: a4506d758df1e0244e029f1da155c2a3493311db
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - region
+ - state
+ - measureGroup
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - product_category
+ sorting: []
+ totals:
+ - localIdentifier: grand_total1
+ function: SUM
+ metric: price
+ totalDimensions:
+ - dimensionIdentifier: dim_0
+ totalDimensionItems:
+ - region
+ - state
+ - measureGroup
+ - localIdentifier: grand_total2
+ function: MAX
+ metric: order_amount
+ totalDimensions:
+ - dimensionIdentifier: dim_0
+ totalDimensionItems:
+ - region
+ - state
+ - measureGroup
+ resultSize: 11856
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4506d758df1e0244e029f1da155c2a3493311db?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -1651,7 +1846,7 @@ interactions:
- 4
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/12567b4da97a90b945422ad66255a788e9fe44f6/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4506d758df1e0244e029f1da155c2a3493311db/metadata
body: null
headers:
Accept:
@@ -1674,7 +1869,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '2322'
+ - '2341'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1811,7 +2006,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 12567b4da97a90b945422ad66255a788e9fe44f6
+ executionResult: a4506d758df1e0244e029f1da155c2a3493311db
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -1843,10 +2038,10 @@ interactions:
- region
- state
- measureGroup
- resultSize: 2048
+ resultSize: 11856
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/12567b4da97a90b945422ad66255a788e9fe44f6?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4506d758df1e0244e029f1da155c2a3493311db?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -3298,198 +3493,3 @@ interactions:
total:
- 96
- 4
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/12567b4da97a90b945422ad66255a788e9fe44f6/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '2322'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- localIdentifier: dim_1
- links:
- executionResult: 12567b4da97a90b945422ad66255a788e9fe44f6
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - region
- - state
- - measureGroup
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - product_category
- sorting: []
- totals:
- - localIdentifier: grand_total1
- function: SUM
- metric: price
- totalDimensions:
- - dimensionIdentifier: dim_0
- totalDimensionItems:
- - region
- - state
- - measureGroup
- - localIdentifier: grand_total2
- function: MAX
- metric: order_amount
- totalDimensions:
- - dimensionIdentifier: dim_0
- totalDimensionItems:
- - region
- - state
- - measureGroup
- resultSize: 2048
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml
index 1c08c41b8..c8b3ccd42 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml
@@ -192,11 +192,203 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: a4555c898adce077a96ed08349d86bbec9de521f
- resultSize: 2048
+ executionResult: c388dc3633e6b45781a4ecedca938a5e98c0f623
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4555c898adce077a96ed08349d86bbec9de521f?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c388dc3633e6b45781a4ecedca938a5e98c0f623/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '2323'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ localIdentifier: dim_1
+ links:
+ executionResult: c388dc3633e6b45781a4ecedca938a5e98c0f623
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - state
+ - measureGroup
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - region
+ - product_category
+ sorting: []
+ totals:
+ - localIdentifier: grand_total1
+ function: SUM
+ metric: price
+ totalDimensions:
+ - dimensionIdentifier: dim_0
+ totalDimensionItems:
+ - state
+ - measureGroup
+ - localIdentifier: grand_total2
+ function: MAX
+ metric: order_amount
+ totalDimensions:
+ - dimensionIdentifier: dim_0
+ totalDimensionItems:
+ - state
+ - measureGroup
+ resultSize: 12904
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c388dc3633e6b45781a4ecedca938a5e98c0f623?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -2705,7 +2897,7 @@ interactions:
- 17
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4555c898adce077a96ed08349d86bbec9de521f/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c388dc3633e6b45781a4ecedca938a5e98c0f623/metadata
body: null
headers:
Accept:
@@ -2728,7 +2920,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '2304'
+ - '2323'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2865,7 +3057,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: a4555c898adce077a96ed08349d86bbec9de521f
+ executionResult: c388dc3633e6b45781a4ecedca938a5e98c0f623
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -2895,10 +3087,10 @@ interactions:
totalDimensionItems:
- state
- measureGroup
- resultSize: 2048
+ resultSize: 12904
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4555c898adce077a96ed08349d86bbec9de521f?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c388dc3633e6b45781a4ecedca938a5e98c0f623?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -5405,196 +5597,3 @@ interactions:
total:
- 96
- 17
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4555c898adce077a96ed08349d86bbec9de521f/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '2304'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- localIdentifier: dim_1
- links:
- executionResult: a4555c898adce077a96ed08349d86bbec9de521f
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - state
- - measureGroup
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - region
- - product_category
- sorting: []
- totals:
- - localIdentifier: grand_total1
- function: SUM
- metric: price
- totalDimensions:
- - dimensionIdentifier: dim_0
- totalDimensionItems:
- - state
- - measureGroup
- - localIdentifier: grand_total2
- function: MAX
- metric: order_amount
- totalDimensions:
- - dimensionIdentifier: dim_0
- totalDimensionItems:
- - state
- - measureGroup
- resultSize: 2048
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml
index b38376319..d6ea11b92 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml
@@ -175,10 +175,187 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: 5612b4bdb6f36d623e262455bb12be183405147e
+ executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5612b4bdb6f36d623e262455bb12be183405147e?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '1980'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - state
+ - region
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - product_category
+ - measureGroup
+ sorting: []
+ totals: []
+ resultSize: 7085
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -978,7 +1155,7 @@ interactions:
- 8
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5612b4bdb6f36d623e262455bb12be183405147e/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata
body: null
headers:
Accept:
@@ -1001,7 +1178,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1962'
+ - '1980'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1138,7 +1315,7 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: 5612b4bdb6f36d623e262455bb12be183405147e
+ executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -1152,10 +1329,10 @@ interactions:
- measureGroup
sorting: []
totals: []
- resultSize: 2048
+ resultSize: 7085
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5612b4bdb6f36d623e262455bb12be183405147e?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -1955,7 +2132,7 @@ interactions:
- 8
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5612b4bdb6f36d623e262455bb12be183405147e/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata
body: null
headers:
Accept:
@@ -1978,7 +2155,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1962'
+ - '1980'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2115,7 +2292,7 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: 5612b4bdb6f36d623e262455bb12be183405147e
+ executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -2129,10 +2306,10 @@ interactions:
- measureGroup
sorting: []
totals: []
- resultSize: 2048
+ resultSize: 7085
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5612b4bdb6f36d623e262455bb12be183405147e?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -2930,180 +3107,3 @@ interactions:
total:
- 48
- 8
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5612b4bdb6f36d623e262455bb12be183405147e/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '1962'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: 5612b4bdb6f36d623e262455bb12be183405147e
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - state
- - region
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - product_category
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml
index 2cd4d7f2e..56ee2ba62 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml
@@ -175,10 +175,187 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: d835d55b29535992d6c4256bcf8007c9759d3ac5
+ executionResult: 7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d835d55b29535992d6c4256bcf8007c9759d3ac5?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '1981'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ localIdentifier: dim_0
+ - headers:
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: 7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - region
+ - state
+ - product_category
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - measureGroup
+ sorting: []
+ totals: []
+ resultSize: 19322
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -1370,7 +1547,7 @@ interactions:
- 2
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d835d55b29535992d6c4256bcf8007c9759d3ac5?offset=100%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74?offset=100%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -2364,7 +2541,7 @@ interactions:
- 2
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d835d55b29535992d6c4256bcf8007c9759d3ac5/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74/metadata
body: null
headers:
Accept:
@@ -2387,7 +2564,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1962'
+ - '1981'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2524,7 +2701,7 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: d835d55b29535992d6c4256bcf8007c9759d3ac5
+ executionResult: 7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -2538,10 +2715,10 @@ interactions:
- measureGroup
sorting: []
totals: []
- resultSize: 2048
+ resultSize: 19322
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d835d55b29535992d6c4256bcf8007c9759d3ac5?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -3733,7 +3910,7 @@ interactions:
- 2
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d835d55b29535992d6c4256bcf8007c9759d3ac5/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74?offset=100%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -3756,184 +3933,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1962'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- localIdentifier: dim_0
- - headers:
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: d835d55b29535992d6c4256bcf8007c9759d3ac5
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - region
- - state
- - product_category
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d835d55b29535992d6c4256bcf8007c9759d3ac5?offset=100%2C0&limit=100%2C100
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '20020'
+ - '20020'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -4902,180 +4902,3 @@ interactions:
total:
- 182
- 2
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d835d55b29535992d6c4256bcf8007c9759d3ac5/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '1962'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- localIdentifier: dim_0
- - headers:
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: d835d55b29535992d6c4256bcf8007c9759d3ac5
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - region
- - state
- - product_category
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml
index 94dbb09f6..178bc5c5d 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml
@@ -175,10 +175,187 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: 1f2a5ed76b0cb3393cda63938d34ca86e67be4b4
+ executionResult: 6380a6add557a8e94371c6b11907d1440e03fe1a
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1f2a5ed76b0cb3393cda63938d34ca86e67be4b4?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6380a6add557a8e94371c6b11907d1440e03fe1a/metadata
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '1980'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ afm:
+ attributes:
+ - localIdentifier: region
+ label:
+ identifier:
+ id: region
+ type: label
+ - localIdentifier: state
+ label:
+ identifier:
+ id: state
+ type: label
+ - localIdentifier: product_category
+ label:
+ identifier:
+ id: products.category
+ type: label
+ filters: []
+ measures:
+ - localIdentifier: price
+ definition:
+ measure:
+ item:
+ identifier:
+ id: price
+ type: fact
+ aggregation: SUM
+ computeRatio: false
+ filters: []
+ - localIdentifier: order_amount
+ definition:
+ measure:
+ item:
+ identifier:
+ id: order_amount
+ type: metric
+ computeRatio: false
+ filters: []
+ auxMeasures: []
+ executionResponse:
+ dimensions:
+ - headers:
+ - attributeHeader:
+ localIdentifier: product_category
+ label:
+ id: products.category
+ type: label
+ labelName: Category
+ attribute:
+ id: products.category
+ type: attribute
+ attributeName: Category
+ granularity: null
+ primaryLabel:
+ id: products.category
+ type: label
+ localIdentifier: dim_0
+ - headers:
+ - attributeHeader:
+ localIdentifier: region
+ label:
+ id: region
+ type: label
+ labelName: Region
+ attribute:
+ id: region
+ type: attribute
+ attributeName: Region
+ granularity: null
+ primaryLabel:
+ id: region
+ type: label
+ - attributeHeader:
+ localIdentifier: state
+ label:
+ id: state
+ type: label
+ labelName: State
+ attribute:
+ id: state
+ type: attribute
+ attributeName: State
+ granularity: null
+ primaryLabel:
+ id: state
+ type: label
+ - measureGroupHeaders:
+ - localIdentifier: price
+ - localIdentifier: order_amount
+ format: $#,##0
+ name: Order Amount
+ localIdentifier: dim_1
+ links:
+ executionResult: 6380a6add557a8e94371c6b11907d1440e03fe1a
+ resultSpec:
+ dimensions:
+ - localIdentifier: dim_0
+ itemIdentifiers:
+ - product_category
+ sorting: []
+ - localIdentifier: dim_1
+ itemIdentifiers:
+ - region
+ - state
+ - measureGroup
+ sorting: []
+ totals: []
+ resultSize: 9802
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6380a6add557a8e94371c6b11907d1440e03fe1a?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -1430,7 +1607,7 @@ interactions:
- 96
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1f2a5ed76b0cb3393cda63938d34ca86e67be4b4/metadata
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6380a6add557a8e94371c6b11907d1440e03fe1a/metadata
body: null
headers:
Accept:
@@ -1453,7 +1630,7 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '1962'
+ - '1980'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1590,7 +1767,7 @@ interactions:
name: Order Amount
localIdentifier: dim_1
links:
- executionResult: 1f2a5ed76b0cb3393cda63938d34ca86e67be4b4
+ executionResult: 6380a6add557a8e94371c6b11907d1440e03fe1a
resultSpec:
dimensions:
- localIdentifier: dim_0
@@ -1604,10 +1781,10 @@ interactions:
- measureGroup
sorting: []
totals: []
- resultSize: 2048
+ resultSize: 9802
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1f2a5ed76b0cb3393cda63938d34ca86e67be4b4?offset=0%2C0&limit=100%2C100
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6380a6add557a8e94371c6b11907d1440e03fe1a?offset=0%2C0&limit=100%2C100
body: null
headers:
Accept:
@@ -2857,180 +3034,3 @@ interactions:
total:
- 4
- 96
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1f2a5ed76b0cb3393cda63938d34ca86e67be4b4/metadata
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Length:
- - '1962'
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Referrer-Policy:
- - no-referrer
- Server:
- - nginx
- Set-Cookie:
- - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
- GMT; HttpOnly; SameSite=Lax
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1 ; mode=block
- body:
- string:
- afm:
- attributes:
- - localIdentifier: region
- label:
- identifier:
- id: region
- type: label
- - localIdentifier: state
- label:
- identifier:
- id: state
- type: label
- - localIdentifier: product_category
- label:
- identifier:
- id: products.category
- type: label
- filters: []
- measures:
- - localIdentifier: price
- definition:
- measure:
- item:
- identifier:
- id: price
- type: fact
- aggregation: SUM
- computeRatio: false
- filters: []
- - localIdentifier: order_amount
- definition:
- measure:
- item:
- identifier:
- id: order_amount
- type: metric
- computeRatio: false
- filters: []
- auxMeasures: []
- executionResponse:
- dimensions:
- - headers:
- - attributeHeader:
- localIdentifier: product_category
- label:
- id: products.category
- type: label
- labelName: Category
- attribute:
- id: products.category
- type: attribute
- attributeName: Category
- granularity: null
- primaryLabel:
- id: products.category
- type: label
- localIdentifier: dim_0
- - headers:
- - attributeHeader:
- localIdentifier: region
- label:
- id: region
- type: label
- labelName: Region
- attribute:
- id: region
- type: attribute
- attributeName: Region
- granularity: null
- primaryLabel:
- id: region
- type: label
- - attributeHeader:
- localIdentifier: state
- label:
- id: state
- type: label
- labelName: State
- attribute:
- id: state
- type: attribute
- attributeName: State
- granularity: null
- primaryLabel:
- id: state
- type: label
- - measureGroupHeaders:
- - localIdentifier: price
- - localIdentifier: order_amount
- format: $#,##0
- name: Order Amount
- localIdentifier: dim_1
- links:
- executionResult: 1f2a5ed76b0cb3393cda63938d34ca86e67be4b4
- resultSpec:
- dimensions:
- - localIdentifier: dim_0
- itemIdentifiers:
- - product_category
- sorting: []
- - localIdentifier: dim_1
- itemIdentifiers:
- - region
- - state
- - measureGroup
- sorting: []
- totals: []
- resultSize: 2048
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight.yaml
index 343a58167..6ebd31652 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4481'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,27 +53,27 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
attributes:
title: Revenue and Quantity by Product and Category
areRelationsValid: true
@@ -168,7 +170,6 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
relationships:
metrics:
data:
@@ -186,44 +187,45 @@ interactions:
data:
- id: product_name
type: label
- - id: customer_name
- type: label
- id: products.category
type: label
- type: visualizationObject
+ - id: customer_name
+ type: label
included:
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: revenue
+ type: metric
+ attributes:
title: Revenue
description: ''
content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
- type: metric
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: product_name
+ type: label
+ attributes:
title: Product name
description: Product name
tags:
@@ -231,11 +233,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -243,21 +245,21 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
- type: label
- - attributes:
+ - id: percent_revenue_in_category
+ type: metric
+ attributes:
title: '% Revenue in Category'
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
- type: metric
- - attributes:
+ - id: products.category
+ type: label
+ attributes:
title: Category
description: Category
tags:
@@ -265,10 +267,8 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL
- request:
@@ -447,7 +447,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 30ba6fa06f50f87184d29b4a19aee4002f2869b8
+ executionResult: 39629ea17d4aa7d0989318427674da3d1f769782
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -462,7 +462,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -472,6 +472,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -497,533 +499,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -1031,11 +1033,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -1043,11 +1045,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -1055,55 +1057,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -1111,33 +1113,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -1145,11 +1147,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -1157,11 +1159,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -1169,11 +1171,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -1181,11 +1183,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1193,55 +1195,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -1249,22 +1251,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -1272,33 +1274,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1306,11 +1308,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1318,22 +1320,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1341,11 +1343,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1353,10 +1355,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1374,7 +1374,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1384,6 +1384,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1409,28 +1411,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1448,9 +1450,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1466,8 +1465,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1478,9 +1480,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1488,8 +1487,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1500,9 +1502,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1514,8 +1513,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1525,35 +1527,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1569,8 +1568,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1581,9 +1583,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1593,392 +1592,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1996,7 +1996,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -2006,6 +2006,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2031,59 +2033,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -2091,107 +2093,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -2199,120 +2201,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/30ba6fa06f50f87184d29b4a19aee4002f2869b8?offset=0%2C0&limit=4%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/39629ea17d4aa7d0989318427674da3d1f769782?offset=0%2C0&limit=4%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_date.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_date.yaml
index 94c6dddda..98d2ffcbc 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_date.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_date.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2958'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,27 +53,27 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: customers_trend
+ type: visualizationObject
attributes:
title: Customers Trend
areRelationsValid: true
@@ -145,7 +147,6 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
relationships:
metrics:
data:
@@ -161,47 +162,46 @@ interactions:
data:
- id: date.month
type: label
- type: visualizationObject
included:
- - attributes:
+ - id: date
+ type: dataset
+ attributes:
title: Date
description: ''
tags:
- Date
type: DATE
- id: date
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
- type: dataset
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
- type: metric
- - attributes:
+ - id: date.month
+ type: label
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/customers_trend?include=ALL
- request:
@@ -346,7 +346,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: f66c817f51f8c031a753b872728075ac4b76db30
+ executionResult: 72dd59d1c5043cd137f6e1fef420239e1eae2dca
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -361,7 +361,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -371,6 +371,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -396,533 +398,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -930,11 +932,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -942,11 +944,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -954,55 +956,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -1010,33 +1012,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -1044,11 +1046,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -1056,11 +1058,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -1068,11 +1070,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -1080,11 +1082,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1092,55 +1094,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -1148,22 +1150,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -1171,33 +1173,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1205,11 +1207,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1217,22 +1219,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1240,11 +1242,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1252,10 +1254,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1273,7 +1273,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1283,6 +1283,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1308,28 +1310,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1347,9 +1349,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1365,8 +1364,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1377,9 +1379,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1387,8 +1386,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1399,9 +1401,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1413,8 +1412,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1424,35 +1426,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1468,8 +1467,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1480,9 +1482,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1492,392 +1491,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1895,7 +1895,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1905,6 +1905,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1930,59 +1932,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1990,107 +1992,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -2098,120 +2100,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f66c817f51f8c031a753b872728075ac4b76db30?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/72dd59d1c5043cd137f6e1fef420239e1eae2dca?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
@@ -2279,8 +2279,7 @@ interactions:
body:
string:
data:
- - - 72.0
- - 57.0
+ - - 57.0
- 87.0
- 63.0
- 61.0
@@ -2291,8 +2290,8 @@ interactions:
- 76.0
- 95.0
- 110.0
- - - 179.70174603174604
- - 167.8428
+ - 91.0
+ - - 167.8428
- 182.3487341772152
- 176.9677358490566
- 150.10735849056604
@@ -2303,6 +2302,7 @@ interactions:
- 213.47925373134328
- 167.58869047619046
- 237.2503
+ - 154.40761904761905
dimensionHeaders:
- headerGroups:
- headers:
@@ -2312,9 +2312,6 @@ interactions:
measureIndex: 1
- headerGroups:
- headers:
- - attributeHeader:
- labelValue: 2021-10
- primaryLabelValue: 2021-10
- attributeHeader:
labelValue: 2021-11
primaryLabelValue: 2021-11
@@ -2348,6 +2345,9 @@ interactions:
- attributeHeader:
labelValue: 2022-09
primaryLabelValue: 2022-09
+ - attributeHeader:
+ labelValue: 2022-10
+ primaryLabelValue: 2022-10
grandTotals: []
paging:
count:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_no_index.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_no_index.yaml
index 343a58167..6ebd31652 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_no_index.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_no_index.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4481'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,27 +53,27 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
attributes:
title: Revenue and Quantity by Product and Category
areRelationsValid: true
@@ -168,7 +170,6 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
relationships:
metrics:
data:
@@ -186,44 +187,45 @@ interactions:
data:
- id: product_name
type: label
- - id: customer_name
- type: label
- id: products.category
type: label
- type: visualizationObject
+ - id: customer_name
+ type: label
included:
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: revenue
+ type: metric
+ attributes:
title: Revenue
description: ''
content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
- type: metric
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: product_name
+ type: label
+ attributes:
title: Product name
description: Product name
tags:
@@ -231,11 +233,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -243,21 +245,21 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
- type: label
- - attributes:
+ - id: percent_revenue_in_category
+ type: metric
+ attributes:
title: '% Revenue in Category'
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
- type: metric
- - attributes:
+ - id: products.category
+ type: label
+ attributes:
title: Category
description: Category
tags:
@@ -265,10 +267,8 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL
- request:
@@ -447,7 +447,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 30ba6fa06f50f87184d29b4a19aee4002f2869b8
+ executionResult: 39629ea17d4aa7d0989318427674da3d1f769782
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -462,7 +462,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -472,6 +472,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -497,533 +499,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -1031,11 +1033,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -1043,11 +1045,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -1055,55 +1057,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -1111,33 +1113,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -1145,11 +1147,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -1157,11 +1159,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -1169,11 +1171,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -1181,11 +1183,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1193,55 +1195,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -1249,22 +1251,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -1272,33 +1274,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1306,11 +1308,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1318,22 +1320,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1341,11 +1343,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1353,10 +1355,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1374,7 +1374,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1384,6 +1384,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1409,28 +1411,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1448,9 +1450,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1466,8 +1465,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1478,9 +1480,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1488,8 +1487,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1500,9 +1502,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1514,8 +1513,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1525,35 +1527,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1569,8 +1568,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1581,9 +1583,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1593,392 +1592,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1996,7 +1996,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -2006,6 +2006,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2031,59 +2033,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -2091,107 +2093,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -2199,120 +2201,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/30ba6fa06f50f87184d29b4a19aee4002f2869b8?offset=0%2C0&limit=4%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/39629ea17d4aa7d0989318427674da3d1f769782?offset=0%2C0&limit=4%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml
index fc7bf22b3..a403a572a 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml
@@ -155,7 +155,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 29d308890d86a4735bc27f0eb322cbb0e9b328c6
+ executionResult: 41ced45171703502426f482466c89e5ba2a8cda2
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -170,7 +170,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -180,6 +180,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -205,533 +207,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -739,11 +741,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -751,11 +753,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -763,55 +765,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -819,33 +821,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -853,11 +855,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -865,11 +867,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -877,11 +879,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -889,11 +891,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -901,55 +903,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -957,22 +959,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -980,33 +982,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1014,11 +1016,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1026,22 +1028,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1049,11 +1051,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1061,10 +1063,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1082,7 +1082,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1092,6 +1092,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1117,28 +1119,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1156,9 +1158,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1174,8 +1173,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1186,9 +1188,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1196,8 +1195,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1208,9 +1210,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1222,8 +1221,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1233,35 +1235,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1277,8 +1276,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1289,9 +1291,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1301,392 +1300,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1704,7 +1704,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1714,6 +1714,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1739,59 +1741,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1799,107 +1801,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1907,120 +1909,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/29d308890d86a4735bc27f0eb322cbb0e9b328c6?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/41ced45171703502426f482466c89e5ba2a8cda2?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml
index fc7bf22b3..a403a572a 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml
@@ -155,7 +155,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 29d308890d86a4735bc27f0eb322cbb0e9b328c6
+ executionResult: 41ced45171703502426f482466c89e5ba2a8cda2
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -170,7 +170,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -180,6 +180,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -205,533 +207,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -739,11 +741,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -751,11 +753,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -763,55 +765,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -819,33 +821,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -853,11 +855,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -865,11 +867,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -877,11 +879,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -889,11 +891,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -901,55 +903,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -957,22 +959,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -980,33 +982,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1014,11 +1016,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1026,22 +1028,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1049,11 +1051,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1061,10 +1063,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1082,7 +1082,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1092,6 +1092,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1117,28 +1119,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1156,9 +1158,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1174,8 +1173,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1186,9 +1188,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1196,8 +1195,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1208,9 +1210,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1222,8 +1221,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1233,35 +1235,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1277,8 +1276,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1289,9 +1291,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1301,392 +1300,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1704,7 +1704,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1714,6 +1714,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1739,59 +1741,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1799,107 +1801,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1907,120 +1909,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/29d308890d86a4735bc27f0eb322cbb0e9b328c6?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/41ced45171703502426f482466c89e5ba2a8cda2?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml b/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml
index a4494724e..8574b4b6f 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml
@@ -136,7 +136,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: b7e75495ed5057bfac052f6371e91ae8cdc3763b
+ executionResult: 649dc53f019b865f20b5d8dafbfaf5a2e0686098
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -151,7 +151,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -161,6 +161,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -186,533 +188,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -720,11 +722,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -732,11 +734,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -744,55 +746,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -800,33 +802,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -834,11 +836,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -846,11 +848,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -858,11 +860,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -870,11 +872,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -882,55 +884,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -938,22 +940,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -961,33 +963,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -995,11 +997,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1007,22 +1009,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1030,11 +1032,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1042,10 +1044,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1063,7 +1063,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1073,6 +1073,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1098,28 +1100,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1137,9 +1139,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1155,8 +1154,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1167,9 +1169,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1177,8 +1176,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1189,9 +1191,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1203,8 +1202,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1214,35 +1216,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1258,8 +1257,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1270,9 +1272,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1282,392 +1281,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1685,7 +1685,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1695,6 +1695,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1720,59 +1722,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1780,107 +1782,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1888,120 +1890,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b7e75495ed5057bfac052f6371e91ae8cdc3763b?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/649dc53f019b865f20b5d8dafbfaf5a2e0686098?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml b/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml
index a4494724e..8574b4b6f 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml
@@ -136,7 +136,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: b7e75495ed5057bfac052f6371e91ae8cdc3763b
+ executionResult: 649dc53f019b865f20b5d8dafbfaf5a2e0686098
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -151,7 +151,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -161,6 +161,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -186,533 +188,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -720,11 +722,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -732,11 +734,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -744,55 +746,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -800,33 +802,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -834,11 +836,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -846,11 +848,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -858,11 +860,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -870,11 +872,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -882,55 +884,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -938,22 +940,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -961,33 +963,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -995,11 +997,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1007,22 +1009,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1030,11 +1032,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1042,10 +1044,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1063,7 +1063,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1073,6 +1073,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1098,28 +1100,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1137,9 +1139,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1155,8 +1154,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1167,9 +1169,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1177,8 +1176,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1189,9 +1191,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1203,8 +1202,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1214,35 +1216,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1258,8 +1257,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1270,9 +1272,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1282,392 +1281,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1685,7 +1685,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1695,6 +1695,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1720,59 +1722,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1780,107 +1782,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1888,120 +1890,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b7e75495ed5057bfac052f6371e91ae8cdc3763b?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/649dc53f019b865f20b5d8dafbfaf5a2e0686098?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml b/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml
index 3c49e0128..de5830800 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml
@@ -189,7 +189,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 1dcd9b2c4f29e1732d11e14ea2ccb2394e54f77c
+ executionResult: 477461adc642356812c88771a6b2abe4772952f5
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -204,7 +204,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -214,6 +214,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -239,533 +241,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -773,11 +775,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -785,11 +787,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -797,55 +799,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -853,33 +855,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -887,11 +889,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -899,11 +901,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -911,11 +913,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -923,11 +925,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -935,55 +937,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -991,22 +993,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -1014,33 +1016,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1048,11 +1050,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1060,22 +1062,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1083,11 +1085,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1095,10 +1097,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1116,7 +1116,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1126,6 +1126,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1151,28 +1153,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1190,9 +1192,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1208,8 +1207,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1220,9 +1222,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1230,8 +1229,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1242,9 +1244,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1256,8 +1255,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1267,35 +1269,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1311,8 +1310,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1323,9 +1325,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1335,392 +1334,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1738,7 +1738,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1748,6 +1748,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1773,59 +1775,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1833,107 +1835,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1941,120 +1943,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1dcd9b2c4f29e1732d11e14ea2ccb2394e54f77c?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/477461adc642356812c88771a6b2abe4772952f5?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml b/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml
index 7ae45f3c9..9dd6ffb06 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml
@@ -164,7 +164,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 15f16f54effe06c970411b86ba0fd4bbc990e3cf
+ executionResult: 431b392d29be2bd61d03542d0466949b21271041
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -179,7 +179,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -189,6 +189,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -214,533 +216,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -748,11 +750,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -760,11 +762,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -772,55 +774,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -828,33 +830,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -862,11 +864,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -874,11 +876,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -886,11 +888,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -898,11 +900,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -910,55 +912,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -966,22 +968,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -989,33 +991,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1023,11 +1025,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1035,22 +1037,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1058,11 +1060,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1070,10 +1072,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1091,7 +1091,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1101,6 +1101,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1126,28 +1128,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1165,9 +1167,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1183,8 +1182,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1195,9 +1197,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1205,8 +1204,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1217,9 +1219,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1231,8 +1230,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1242,35 +1244,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1286,8 +1285,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1298,9 +1300,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1310,392 +1309,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1713,7 +1713,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1723,6 +1723,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1748,59 +1750,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1808,107 +1810,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1916,120 +1918,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/15f16f54effe06c970411b86ba0fd4bbc990e3cf?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/431b392d29be2bd61d03542d0466949b21271041?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml b/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml
index 9d6e96153..00afbc83a 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml
@@ -156,7 +156,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 808f9e04046860b0eac6bf428357b72b1ae986e2
+ executionResult: 23bc7f2885c9b944a7109ee73e71e5c266f629c1
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -171,7 +171,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -181,6 +181,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -206,533 +208,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -740,11 +742,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -752,11 +754,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -764,55 +766,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -820,33 +822,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -854,11 +856,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -866,11 +868,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -878,11 +880,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -890,11 +892,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -902,55 +904,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -958,22 +960,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -981,33 +983,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1015,11 +1017,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1027,22 +1029,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1050,11 +1052,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1062,10 +1064,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1083,7 +1083,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1093,6 +1093,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1118,28 +1120,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1157,9 +1159,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1175,8 +1174,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1187,9 +1189,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1197,8 +1196,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1209,9 +1211,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1223,8 +1222,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1234,35 +1236,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1278,8 +1277,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1290,9 +1292,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1302,392 +1301,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1705,7 +1705,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1715,6 +1715,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1740,59 +1742,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1800,107 +1802,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1908,120 +1910,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/808f9e04046860b0eac6bf428357b72b1ae986e2?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23bc7f2885c9b944a7109ee73e71e5c266f629c1?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml b/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml
index a73cda32f..98ca843fb 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml
@@ -176,7 +176,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 1025ddbf24cdabe27da213929835dcddd7d3704b
+ executionResult: 64e30a3deef2e1926eafde81868c2c7864bd03aa
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -191,7 +191,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -201,6 +201,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -226,533 +228,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -760,11 +762,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -772,11 +774,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -784,55 +786,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -840,33 +842,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -874,11 +876,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -886,11 +888,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -898,11 +900,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -910,11 +912,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -922,55 +924,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -978,22 +980,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -1001,33 +1003,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1035,11 +1037,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1047,22 +1049,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1070,11 +1072,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1082,10 +1084,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1103,7 +1103,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1113,6 +1113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1138,28 +1140,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1177,9 +1179,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1195,8 +1194,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1207,9 +1209,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1217,8 +1216,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1229,9 +1231,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1243,8 +1242,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1254,35 +1256,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1298,8 +1297,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1310,9 +1312,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1322,392 +1321,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1725,7 +1725,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1735,6 +1735,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1760,59 +1762,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1820,107 +1822,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1928,120 +1930,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1025ddbf24cdabe27da213929835dcddd7d3704b?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/64e30a3deef2e1926eafde81868c2c7864bd03aa?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml
index cd3126d6b..3c7c0d5b7 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml
@@ -144,7 +144,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 74922b7851dd1fc0cc810a84a81c2335e4bd61e1
+ executionResult: 5e78f41b20eba30908244d6e912ffce1cde42163
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -159,7 +159,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -169,6 +169,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -194,533 +196,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -728,11 +730,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -740,11 +742,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -752,55 +754,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -808,33 +810,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -842,11 +844,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -854,11 +856,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -866,11 +868,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -878,11 +880,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -890,55 +892,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -946,22 +948,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -969,33 +971,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1003,11 +1005,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1015,22 +1017,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1038,11 +1040,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1050,10 +1052,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1071,7 +1071,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1081,6 +1081,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1106,28 +1108,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1145,9 +1147,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1163,8 +1162,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1175,9 +1177,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1185,8 +1184,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1197,9 +1199,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1211,8 +1210,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1222,35 +1224,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1266,8 +1265,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1278,9 +1280,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1290,392 +1289,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1693,7 +1693,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1703,6 +1703,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1728,59 +1730,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1788,107 +1790,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1896,120 +1898,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/74922b7851dd1fc0cc810a84a81c2335e4bd61e1?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5e78f41b20eba30908244d6e912ffce1cde42163?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml
index 660a8abb2..2882fe08e 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml
@@ -112,7 +112,7 @@ interactions:
name: '# of Orders'
localIdentifier: dim_0
links:
- executionResult: ba3e4174fcc8603af718ea0cb6daa1db4db5a890
+ executionResult: 16b2cf5db5fccef3bcc33496688ae73501e82b36
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -127,7 +127,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -137,6 +137,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -162,533 +164,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -696,11 +698,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -708,11 +710,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -720,55 +722,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -776,33 +778,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -810,11 +812,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -822,11 +824,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -834,11 +836,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -846,11 +848,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -858,55 +860,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -914,22 +916,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -937,33 +939,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -971,11 +973,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -983,22 +985,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1006,11 +1008,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1018,10 +1020,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1039,7 +1039,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1049,6 +1049,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1074,28 +1076,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1113,9 +1115,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1131,8 +1130,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1143,9 +1145,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1153,8 +1152,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1165,9 +1167,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1179,8 +1178,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1190,35 +1192,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1234,8 +1233,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1246,9 +1248,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1258,392 +1257,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1661,7 +1661,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1671,6 +1671,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1696,59 +1698,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1756,107 +1758,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1864,120 +1866,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/ba3e4174fcc8603af718ea0cb6daa1db4db5a890?offset=0&limit=2
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/16b2cf5db5fccef3bcc33496688ae73501e82b36?offset=0&limit=2
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml
index 37497080a..571b57f3c 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml
@@ -136,7 +136,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 46115fe15a56c03d2ebd181fa752e3e2d432e02c
+ executionResult: c9d858b213fb44c88ec200d4685889b62380f7a6
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -151,7 +151,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -161,6 +161,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -186,533 +188,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -720,11 +722,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -732,11 +734,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -744,55 +746,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -800,33 +802,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -834,11 +836,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -846,11 +848,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -858,11 +860,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -870,11 +872,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -882,55 +884,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -938,22 +940,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -961,33 +963,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -995,11 +997,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1007,22 +1009,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1030,11 +1032,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1042,10 +1044,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1063,7 +1063,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1073,6 +1073,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1098,28 +1100,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1137,9 +1139,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1155,8 +1154,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1167,9 +1169,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1177,8 +1176,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1189,9 +1191,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1203,8 +1202,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1214,35 +1216,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1258,8 +1257,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1270,9 +1272,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1282,392 +1281,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1685,7 +1685,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1695,6 +1695,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1720,59 +1722,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1780,107 +1782,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1888,120 +1890,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/46115fe15a56c03d2ebd181fa752e3e2d432e02c?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c9d858b213fb44c88ec200d4685889b62380f7a6?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml b/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml
index fc870e017..16af93bf8 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml
@@ -191,7 +191,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: db9c728a83c4f9090be9e848101effafe512422b
+ executionResult: 6ef6dff44f4971360e367fb30836e582943a0047
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -206,7 +206,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -216,6 +216,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -241,533 +243,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -775,11 +777,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -787,11 +789,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -799,55 +801,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -855,33 +857,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -889,11 +891,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -901,11 +903,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -913,11 +915,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -925,11 +927,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -937,55 +939,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -993,22 +995,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -1016,33 +1018,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1050,11 +1052,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1062,22 +1064,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1085,11 +1087,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1097,10 +1099,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1118,7 +1118,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1128,6 +1128,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1153,28 +1155,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1192,9 +1194,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1210,8 +1209,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1222,9 +1224,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1232,8 +1231,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1244,9 +1246,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1258,8 +1257,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1269,35 +1271,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1313,8 +1312,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1325,9 +1327,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1337,392 +1336,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1740,7 +1740,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1750,6 +1750,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1775,59 +1777,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1835,107 +1837,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1943,120 +1945,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/db9c728a83c4f9090be9e848101effafe512422b?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6ef6dff44f4971360e367fb30836e582943a0047?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml
index e8a258c72..861ab0f43 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml
@@ -143,7 +143,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: cd3c4ba70e79728a2868bb1777677213c05b0013
+ executionResult: 7f71176d6b2f13d605a5f6c8608d83d143e24295
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -158,7 +158,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -168,6 +168,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -193,533 +195,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -727,11 +729,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -739,11 +741,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -751,55 +753,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -807,33 +809,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -841,11 +843,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -853,11 +855,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -865,11 +867,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -877,11 +879,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -889,55 +891,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -945,22 +947,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -968,33 +970,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1002,11 +1004,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1014,22 +1016,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1037,11 +1039,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1049,10 +1051,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1070,7 +1070,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1080,6 +1080,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1105,28 +1107,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1144,9 +1146,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1162,8 +1161,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1174,9 +1176,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1184,8 +1183,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1196,9 +1198,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1210,8 +1209,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1221,35 +1223,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1265,8 +1264,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1277,9 +1279,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1289,392 +1288,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1692,7 +1692,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1702,6 +1702,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1727,59 +1729,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1787,107 +1789,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1895,120 +1897,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cd3c4ba70e79728a2868bb1777677213c05b0013?offset=0%2C0&limit=1%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7f71176d6b2f13d605a5f6c8608d83d143e24295?offset=0%2C0&limit=1%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml
index 91563ecd4..d8c0d2186 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml
@@ -134,7 +134,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 940ad2e0555a32b04484ceef4b8fbb6870163d63
+ executionResult: 541e7dbfa848a5a40cc0040ce5c28270d2ce8ad2
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -149,7 +149,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -159,6 +159,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -184,533 +186,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -718,11 +720,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -730,11 +732,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -742,55 +744,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -798,33 +800,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -832,11 +834,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -844,11 +846,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -856,11 +858,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -868,11 +870,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -880,55 +882,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -936,22 +938,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -959,33 +961,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -993,11 +995,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1005,22 +1007,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1028,11 +1030,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1040,10 +1042,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1061,7 +1061,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1071,6 +1071,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1096,28 +1098,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1135,9 +1137,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1153,8 +1152,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1165,9 +1167,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1175,8 +1174,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1187,9 +1189,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1201,8 +1200,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1212,35 +1214,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1256,8 +1255,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1268,9 +1270,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1280,392 +1279,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1683,7 +1683,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1693,6 +1693,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1718,59 +1720,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1778,107 +1780,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1886,120 +1888,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/940ad2e0555a32b04484ceef4b8fbb6870163d63?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/541e7dbfa848a5a40cc0040ce5c28270d2ce8ad2?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml
index 91563ecd4..d8c0d2186 100644
--- a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml
+++ b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml
@@ -134,7 +134,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 940ad2e0555a32b04484ceef4b8fbb6870163d63
+ executionResult: 541e7dbfa848a5a40cc0040ce5c28270d2ce8ad2
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -149,7 +149,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -159,6 +159,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -184,533 +186,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -718,11 +720,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -730,11 +732,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -742,55 +744,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -798,33 +800,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -832,11 +834,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -844,11 +846,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -856,11 +858,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -868,11 +870,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -880,55 +882,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -936,22 +938,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -959,33 +961,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -993,11 +995,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1005,22 +1007,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1028,11 +1030,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1040,10 +1042,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1061,7 +1061,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1071,6 +1071,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1096,28 +1098,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1135,9 +1137,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1153,8 +1152,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1165,9 +1167,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1175,8 +1174,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1187,9 +1189,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1201,8 +1200,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1212,35 +1214,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1256,8 +1255,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1268,9 +1270,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1280,392 +1279,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1683,7 +1683,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1693,6 +1693,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1718,59 +1720,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1778,107 +1780,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1886,120 +1888,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/940ad2e0555a32b04484ceef4b8fbb6870163d63?offset=0%2C0&limit=2%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/541e7dbfa848a5a40cc0040ce5c28270d2ce8ad2?offset=0%2C0&limit=2%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/dataframe/test_dataframe_for_exec_def.py b/gooddata-pandas/tests/dataframe/test_dataframe_for_exec_def.py
index de94c6820..8e15ab467 100644
--- a/gooddata-pandas/tests/dataframe/test_dataframe_for_exec_def.py
+++ b/gooddata-pandas/tests/dataframe/test_dataframe_for_exec_def.py
@@ -38,7 +38,7 @@ def _run_and_validate_results(gdf: DataFrameFactory, exec_def: ExecutionDefiniti
@gd_vcr.use_cassette(str(_fixtures_dir / "dataframe_for_exec_def_two_dim1.yaml"))
-def test_dataframe_for_exec_def_two_dim1(gdf: DataFrameFactory):
+def test_dataframe_for_exec_def_two_dim1(test_config, gdf: DataFrameFactory):
exec_def = ExecutionDefinition(
attributes=[
Attribute(local_id="region", label="region"),
@@ -68,8 +68,8 @@ def test_dataframe_for_exec_def_two_dim1(gdf: DataFrameFactory):
assert result.to_string().find(overrides["metrics"]["price"]["title"]) == 162
-@gd_vcr.use_cassette(str(_fixtures_dir / "dataframe_for_exec_def_two_dim1.yaml"))
-def test_dataframe_for_exec_def_dimensions_limits_failure(gdf: DataFrameFactory):
+@gd_vcr.use_cassette(str(_fixtures_dir / "dataframe_for_exec_def_dimensions_limits_failure.yaml"))
+def test_dataframe_for_exec_def_dimensions_limits_failure(test_config, gdf: DataFrameFactory):
exec_def = ExecutionDefinition(
attributes=[
Attribute(local_id="region", label="region"),
@@ -96,8 +96,8 @@ def test_dataframe_for_exec_def_dimensions_limits_failure(gdf: DataFrameFactory)
assert exception.first_violating_index == 0
-@gd_vcr.use_cassette(str(_fixtures_dir / "dataframe_for_exec_def_two_dim1.yaml"))
-def test_dataframe_for_exec_def_bytes_limits_failure(gdf: DataFrameFactory):
+@gd_vcr.use_cassette(str(_fixtures_dir / "dataframe_for_exec_def_bytes_limits_failure.yaml"))
+def test_dataframe_for_exec_def_bytes_limits_failure(test_config, gdf: DataFrameFactory):
exec_def = ExecutionDefinition(
attributes=[
Attribute(local_id="region", label="region"),
diff --git a/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml b/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml
index 267dd39d3..64ab124b8 100644
--- a/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml
+++ b/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml
@@ -151,7 +151,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 1488ce7aec14a0cb6ba68e1e55cef6f45e3d7fd0
+ executionResult: 1f7a253f4aa30349990307f5e9802f2462b28a73
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -166,7 +166,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -176,6 +176,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -201,533 +203,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -735,11 +737,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -747,11 +749,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -759,55 +761,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -815,33 +817,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -849,11 +851,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -861,11 +863,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -873,11 +875,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -885,11 +887,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -897,55 +899,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -953,22 +955,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -976,33 +978,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1010,11 +1012,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1022,22 +1024,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1045,11 +1047,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1057,10 +1059,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1078,7 +1078,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1088,6 +1088,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1113,28 +1115,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1152,9 +1154,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1170,8 +1169,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1182,9 +1184,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1192,8 +1191,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1204,9 +1206,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1218,8 +1217,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1229,35 +1231,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1273,8 +1272,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1285,9 +1287,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1297,392 +1296,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1700,7 +1700,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1710,6 +1710,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1735,59 +1737,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1795,107 +1797,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1903,120 +1905,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1488ce7aec14a0cb6ba68e1e55cef6f45e3d7fd0?offset=0%2C0&limit=1%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1f7a253f4aa30349990307f5e9802f2462b28a73?offset=0%2C0&limit=1%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml b/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml
index e8a258c72..861ab0f43 100644
--- a/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml
+++ b/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml
@@ -143,7 +143,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: cd3c4ba70e79728a2868bb1777677213c05b0013
+ executionResult: 7f71176d6b2f13d605a5f6c8608d83d143e24295
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -158,7 +158,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -168,6 +168,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -193,533 +195,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -727,11 +729,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -739,11 +741,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -751,55 +753,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -807,33 +809,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -841,11 +843,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -853,11 +855,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -865,11 +867,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -877,11 +879,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -889,55 +891,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -945,22 +947,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -968,33 +970,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1002,11 +1004,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1014,22 +1016,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1037,11 +1039,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1049,10 +1051,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1070,7 +1070,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1080,6 +1080,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1105,28 +1107,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1144,9 +1146,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1162,8 +1161,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1174,9 +1176,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1184,8 +1183,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1196,9 +1198,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1210,8 +1209,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1221,35 +1223,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1265,8 +1264,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1277,9 +1279,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1289,392 +1288,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1692,7 +1692,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1702,6 +1702,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1727,59 +1729,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1787,107 +1789,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1895,120 +1897,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cd3c4ba70e79728a2868bb1777677213c05b0013?offset=0%2C0&limit=1%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7f71176d6b2f13d605a5f6c8608d83d143e24295?offset=0%2C0&limit=1%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml
index 2e67f0404..b5bd3cb2b 100644
--- a/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml
+++ b/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml
@@ -99,7 +99,7 @@ interactions:
- localIdentifier: 27c4b665b9d047b1a66a149714f1c596
localIdentifier: dim_0
links:
- executionResult: f4d9176dbdc79d7d81d8f875edb979814a4a148d
+ executionResult: b4904a1dd253efa3d30e390075e7fc2084244b15
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -114,7 +114,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -124,6 +124,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -149,533 +151,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -683,11 +685,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -695,11 +697,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -707,55 +709,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -763,33 +765,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -797,11 +799,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -809,11 +811,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -821,11 +823,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -833,11 +835,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -845,55 +847,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -901,22 +903,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -924,33 +926,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -958,11 +960,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -970,22 +972,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -993,11 +995,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1005,10 +1007,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1026,7 +1026,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1036,6 +1036,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1061,28 +1063,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1100,9 +1102,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1118,8 +1117,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1130,9 +1132,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1140,8 +1139,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1152,9 +1154,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1166,8 +1165,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1177,35 +1179,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1221,8 +1220,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1233,9 +1235,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1245,392 +1244,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1648,7 +1648,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1658,6 +1658,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1683,59 +1685,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1743,107 +1745,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1851,120 +1853,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f4d9176dbdc79d7d81d8f875edb979814a4a148d?offset=0&limit=1
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b4904a1dd253efa3d30e390075e7fc2084244b15?offset=0&limit=1
body: null
headers:
Accept:
@@ -2151,7 +2151,7 @@ interactions:
- localIdentifier: 27c4b665b9d047b1a66a149714f1c596
localIdentifier: dim_0
links:
- executionResult: 5c4dd058a067b0ca8567f9ca862df3f36cad0811
+ executionResult: 4aeabb6b2fe2c1090de8462335f6776f56c914ef
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -2166,7 +2166,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -2176,6 +2176,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2201,533 +2203,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -2735,11 +2737,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -2747,11 +2749,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -2759,55 +2761,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -2815,33 +2817,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -2849,11 +2851,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -2861,11 +2863,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -2873,11 +2875,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -2885,11 +2887,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -2897,55 +2899,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -2953,22 +2955,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -2976,33 +2978,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -3010,11 +3012,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -3022,22 +3024,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -3045,11 +3047,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -3057,10 +3059,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -3078,7 +3078,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -3088,6 +3088,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -3113,28 +3115,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -3152,9 +3154,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -3170,8 +3169,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -3182,9 +3184,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -3192,8 +3191,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -3204,9 +3206,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -3218,8 +3217,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -3229,35 +3231,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -3273,8 +3272,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -3285,9 +3287,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -3297,392 +3296,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -3700,7 +3700,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -3710,6 +3710,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -3735,59 +3737,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -3795,107 +3797,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -3903,120 +3905,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5c4dd058a067b0ca8567f9ca862df3f36cad0811?offset=0&limit=1
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4aeabb6b2fe2c1090de8462335f6776f56c914ef?offset=0&limit=1
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml
index db9d157cd..504d559b7 100644
--- a/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml
+++ b/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml
@@ -106,7 +106,7 @@ interactions:
type: label
localIdentifier: dim_0
links:
- executionResult: e59ded8aa942647a7e2a636c582871279c71932c
+ executionResult: 5188aa5d48539ab0ff6a9e8ee9308aa507fdaee9
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -121,7 +121,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -131,6 +131,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -156,533 +158,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -690,11 +692,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -702,11 +704,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -714,55 +716,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -770,33 +772,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -804,11 +806,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -816,11 +818,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -828,11 +830,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -840,11 +842,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -852,55 +854,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -908,22 +910,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -931,33 +933,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -965,11 +967,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -977,22 +979,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1000,11 +1002,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1012,10 +1014,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1033,7 +1033,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1043,6 +1043,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1068,28 +1070,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1107,9 +1109,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1125,8 +1124,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1137,9 +1139,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1147,8 +1146,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1159,9 +1161,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1173,8 +1172,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1184,35 +1186,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1228,8 +1227,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1240,9 +1242,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1252,392 +1251,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1655,7 +1655,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1665,6 +1665,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1690,59 +1692,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1750,107 +1752,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1858,120 +1860,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e59ded8aa942647a7e2a636c582871279c71932c?offset=0&limit=1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5188aa5d48539ab0ff6a9e8ee9308aa507fdaee9?offset=0&limit=1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml
index cb8de6d27..cab61ecb6 100644
--- a/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml
+++ b/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml
@@ -126,7 +126,7 @@ interactions:
type: label
localIdentifier: dim_0
links:
- executionResult: 99ba7987186f8369444fd265b5d40fb8f9d829a2
+ executionResult: a645b8dd53c89ab2b82e3a850b32929669d03d9b
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -141,7 +141,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -151,6 +151,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -176,533 +178,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -710,11 +712,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -722,11 +724,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -734,55 +736,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -790,33 +792,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -824,11 +826,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -836,11 +838,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -848,11 +850,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -860,11 +862,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -872,55 +874,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -928,22 +930,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -951,33 +953,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -985,11 +987,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -997,22 +999,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1020,11 +1022,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1032,10 +1034,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1053,7 +1053,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1063,6 +1063,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1088,28 +1090,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1127,9 +1129,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1145,8 +1144,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1157,9 +1159,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1167,8 +1166,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1179,9 +1181,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1193,8 +1192,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1204,35 +1206,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1248,8 +1247,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1260,9 +1262,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1272,392 +1271,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1675,7 +1675,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1685,6 +1685,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1710,59 +1712,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1770,107 +1772,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1878,120 +1880,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/99ba7987186f8369444fd265b5d40fb8f9d829a2?offset=0&limit=1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a645b8dd53c89ab2b82e3a850b32929669d03d9b?offset=0&limit=1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml
index 04e657355..a95fe3091 100644
--- a/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml
+++ b/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml
@@ -99,7 +99,7 @@ interactions:
- localIdentifier: 27c4b665b9d047b1a66a149714f1c596
localIdentifier: dim_0
links:
- executionResult: f4d9176dbdc79d7d81d8f875edb979814a4a148d
+ executionResult: b4904a1dd253efa3d30e390075e7fc2084244b15
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -114,7 +114,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -124,6 +124,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -149,533 +151,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -683,11 +685,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -695,11 +697,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -707,55 +709,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -763,33 +765,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -797,11 +799,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -809,11 +811,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -821,11 +823,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -833,11 +835,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -845,55 +847,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -901,22 +903,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -924,33 +926,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -958,11 +960,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -970,22 +972,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -993,11 +995,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1005,10 +1007,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1026,7 +1026,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1036,6 +1036,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1061,28 +1063,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1100,9 +1102,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1118,8 +1117,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1130,9 +1132,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1140,8 +1139,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1152,9 +1154,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1166,8 +1165,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1177,35 +1179,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1221,8 +1220,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1233,9 +1235,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1245,392 +1244,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1648,7 +1648,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1658,6 +1658,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1683,59 +1685,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1743,107 +1745,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1851,120 +1853,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f4d9176dbdc79d7d81d8f875edb979814a4a148d?offset=0&limit=1
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b4904a1dd253efa3d30e390075e7fc2084244b15?offset=0&limit=1
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml
index 4488dad8a..6bc22f10b 100644
--- a/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml
+++ b/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml
@@ -123,7 +123,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 9391ac2b6b69bef1b44372a562c72cba727ad448
+ executionResult: d35c46404aedd5c13b2f21d26348b5e8dcf7cae3
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -138,7 +138,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -148,6 +148,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -173,533 +175,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -707,11 +709,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -719,11 +721,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -731,55 +733,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -787,33 +789,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -821,11 +823,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -833,11 +835,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -845,11 +847,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -857,11 +859,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -869,55 +871,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -925,22 +927,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -948,33 +950,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -982,11 +984,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -994,22 +996,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1017,11 +1019,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1029,10 +1031,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1050,7 +1050,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1060,6 +1060,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1085,28 +1087,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1124,9 +1126,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1142,8 +1141,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1154,9 +1156,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1164,8 +1163,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1176,9 +1178,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1190,8 +1189,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1201,35 +1203,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1245,8 +1244,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1257,9 +1259,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1269,392 +1268,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1672,7 +1672,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1682,6 +1682,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1707,59 +1709,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1767,107 +1769,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1875,120 +1877,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9391ac2b6b69bef1b44372a562c72cba727ad448?offset=0%2C0&limit=1%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d35c46404aedd5c13b2f21d26348b5e8dcf7cae3?offset=0%2C0&limit=1%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml b/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml
index 148bea8cd..c2140b7c2 100644
--- a/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml
+++ b/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml
@@ -142,7 +142,7 @@ interactions:
type: label
localIdentifier: dim_0
links:
- executionResult: 5ac1155b70ba405120d321f6cbe9a07a8a0d0ab0
+ executionResult: 591c5830f820cad797c00255b1c675dcb4c976af
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -157,7 +157,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -167,6 +167,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -192,533 +194,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -726,11 +728,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -738,11 +740,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -750,55 +752,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -806,33 +808,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -840,11 +842,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -852,11 +854,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -864,11 +866,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -876,11 +878,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -888,55 +890,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -944,22 +946,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -967,33 +969,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -1001,11 +1003,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -1013,22 +1015,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1036,11 +1038,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1048,10 +1050,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1069,7 +1069,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1079,6 +1079,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1104,28 +1106,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1143,9 +1145,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1161,8 +1160,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1173,9 +1175,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1183,8 +1182,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1195,9 +1197,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1209,8 +1208,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1220,35 +1222,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1264,8 +1263,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1276,9 +1278,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1288,392 +1287,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1691,7 +1691,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1701,6 +1701,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1726,59 +1728,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1786,107 +1788,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1894,120 +1896,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5ac1155b70ba405120d321f6cbe9a07a8a0d0ab0?offset=0&limit=1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/591c5830f820cad797c00255b1c675dcb4c976af?offset=0&limit=1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml b/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml
index db9d157cd..504d559b7 100644
--- a/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml
+++ b/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml
@@ -106,7 +106,7 @@ interactions:
type: label
localIdentifier: dim_0
links:
- executionResult: e59ded8aa942647a7e2a636c582871279c71932c
+ executionResult: 5188aa5d48539ab0ff6a9e8ee9308aa507fdaee9
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -121,7 +121,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -131,6 +131,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -156,533 +158,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -690,11 +692,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -702,11 +704,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -714,55 +716,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -770,33 +772,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -804,11 +806,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -816,11 +818,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -828,11 +830,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -840,11 +842,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -852,55 +854,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -908,22 +910,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -931,33 +933,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -965,11 +967,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -977,22 +979,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1000,11 +1002,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1012,10 +1014,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1033,7 +1033,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1043,6 +1043,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1068,28 +1070,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1107,9 +1109,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1125,8 +1124,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1137,9 +1139,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1147,8 +1146,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1159,9 +1161,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1173,8 +1172,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1184,35 +1186,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1228,8 +1227,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1240,9 +1242,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1252,392 +1251,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1655,7 +1655,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1665,6 +1665,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1690,59 +1692,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1750,107 +1752,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1858,120 +1860,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e59ded8aa942647a7e2a636c582871279c71932c?offset=0&limit=1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5188aa5d48539ab0ff6a9e8ee9308aa507fdaee9?offset=0&limit=1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml b/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml
index 4488dad8a..6bc22f10b 100644
--- a/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml
+++ b/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml
@@ -123,7 +123,7 @@ interactions:
type: label
localIdentifier: dim_1
links:
- executionResult: 9391ac2b6b69bef1b44372a562c72cba727ad448
+ executionResult: d35c46404aedd5c13b2f21d26348b5e8dcf7cae3
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
@@ -138,7 +138,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -148,6 +148,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -173,533 +175,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -707,11 +709,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -719,11 +721,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -731,55 +733,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -787,33 +789,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -821,11 +823,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -833,11 +835,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -845,11 +847,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -857,11 +859,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -869,55 +871,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -925,22 +927,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -948,33 +950,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -982,11 +984,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -994,22 +996,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -1017,11 +1019,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -1029,10 +1031,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -1050,7 +1050,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1060,6 +1060,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1085,28 +1087,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1124,9 +1126,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1142,8 +1141,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1154,9 +1156,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1164,8 +1163,11 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
+ - id: customers
type: dataset
- - attributes:
+ attributes:
title: Customers
description: Customers
tags:
@@ -1176,9 +1178,6 @@ interactions:
dataSourceTableId: demo-test-ds:customers
areRelationsValid: true
type: NORMAL
- id: customers
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
relationships:
attributes:
data:
@@ -1190,8 +1189,11 @@ interactions:
type: attribute
- id: customer_name
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1201,35 +1203,32 @@ interactions:
type: attribute
referenceProperties:
- identifier:
- id: products
+ id: customers
type: dataset
multivalue: false
sourceColumns:
- - product_id
+ - customer_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
- id: customers
+ id: products
type: dataset
multivalue: false
sourceColumns:
- - customer_id
+ - product_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1245,8 +1244,11 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1257,9 +1259,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1269,392 +1268,393 @@ interactions:
type: attribute
- id: products.category
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
+ - id: date.month
+ type: attribute
- id: date.dayOfYear
type: attribute
- id: date.day
type: attribute
- id: date.dayOfMonth
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.minute
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minuteOfHour
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.dayOfWeek
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- id: date.hour
type: attribute
- - id: date.month
- type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1672,7 +1672,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1682,6 +1682,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1707,59 +1709,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1767,107 +1769,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1875,120 +1877,118 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
- request:
method: GET
- uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9391ac2b6b69bef1b44372a562c72cba727ad448?offset=0%2C0&limit=1%2C1000
+ uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d35c46404aedd5c13b2f21d26348b5e8dcf7cae3?offset=0%2C0&limit=1%2C1000
body: null
headers:
Accept:
diff --git a/gooddata-pandas/tox.ini b/gooddata-pandas/tox.ini
index d28fd6df0..53fc1c589 100644
--- a/gooddata-pandas/tox.ini
+++ b/gooddata-pandas/tox.ini
@@ -5,9 +5,7 @@ envlist = py310, py39, py38, py37
[testenv]
deps =
-r{toxinidir}/test-requirements.txt
- -e../gooddata-metadata-client
- -e../gooddata-afm-client
- -e../gooddata-scan-client
+ -e../gooddata-api-client
-e../gooddata-sdk
-e../tests-support
setenv=
@@ -20,9 +18,7 @@ basepython = python3.10
skip_install = true
deps =
-r{toxinidir}/type-requirements.txt
- -e../gooddata-metadata-client
- -e../gooddata-afm-client
- -e../gooddata-scan-client
+ -e../gooddata-api-client
-e../gooddata-sdk
commands =
mypy gooddata_pandas
diff --git a/gooddata-scan-client/.openapi-generator/FILES b/gooddata-scan-client/.openapi-generator/FILES
index 7775b1674..717bf7b87 100644
--- a/gooddata-scan-client/.openapi-generator/FILES
+++ b/gooddata-scan-client/.openapi-generator/FILES
@@ -2,6 +2,7 @@
README.md
docs/ActionsApi.md
docs/ColumnWarning.md
+docs/DataSourceParameter.md
docs/DataSourceSchemata.md
docs/DeclarativeColumn.md
docs/DeclarativeTable.md
@@ -10,6 +11,7 @@ docs/ScanRequest.md
docs/ScanResultPdm.md
docs/TableWarning.md
docs/TestDefinitionRequest.md
+docs/TestRequest.md
docs/TestResponse.md
gooddata_scan_client/__init__.py
gooddata_scan_client/api/__init__.py
@@ -20,6 +22,7 @@ gooddata_scan_client/configuration.py
gooddata_scan_client/exceptions.py
gooddata_scan_client/model/__init__.py
gooddata_scan_client/model/column_warning.py
+gooddata_scan_client/model/data_source_parameter.py
gooddata_scan_client/model/data_source_schemata.py
gooddata_scan_client/model/declarative_column.py
gooddata_scan_client/model/declarative_table.py
@@ -28,6 +31,7 @@ gooddata_scan_client/model/scan_request.py
gooddata_scan_client/model/scan_result_pdm.py
gooddata_scan_client/model/table_warning.py
gooddata_scan_client/model/test_definition_request.py
+gooddata_scan_client/model/test_request.py
gooddata_scan_client/model/test_response.py
gooddata_scan_client/model_utils.py
gooddata_scan_client/models/__init__.py
diff --git a/gooddata-scan-client/README.md b/gooddata-scan-client/README.md
index 1651a8565..99c2141b5 100644
--- a/gooddata-scan-client/README.md
+++ b/gooddata-scan-client/README.md
@@ -54,6 +54,7 @@ from gooddata_scan_client.model.data_source_schemata import DataSourceSchemata
from gooddata_scan_client.model.scan_request import ScanRequest
from gooddata_scan_client.model.scan_result_pdm import ScanResultPdm
from gooddata_scan_client.model.test_definition_request import TestDefinitionRequest
+from gooddata_scan_client.model.test_request import TestRequest
from gooddata_scan_client.model.test_response import TestResponse
# Defining the host is optional and defaults to http://localhost
# See configuration.py for a list of all supported configuration parameters.
@@ -92,6 +93,7 @@ Class | Method | HTTP request | Description
## Documentation For Models
- [ColumnWarning](docs/ColumnWarning.md)
+ - [DataSourceParameter](docs/DataSourceParameter.md)
- [DataSourceSchemata](docs/DataSourceSchemata.md)
- [DeclarativeColumn](docs/DeclarativeColumn.md)
- [DeclarativeTable](docs/DeclarativeTable.md)
@@ -100,6 +102,7 @@ Class | Method | HTTP request | Description
- [ScanResultPdm](docs/ScanResultPdm.md)
- [TableWarning](docs/TableWarning.md)
- [TestDefinitionRequest](docs/TestDefinitionRequest.md)
+ - [TestRequest](docs/TestRequest.md)
- [TestResponse](docs/TestResponse.md)
diff --git a/gooddata-scan-client/docs/ActionsApi.md b/gooddata-scan-client/docs/ActionsApi.md
index adf84a121..dcd3a0935 100644
--- a/gooddata-scan-client/docs/ActionsApi.md
+++ b/gooddata-scan-client/docs/ActionsApi.md
@@ -155,7 +155,7 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **test_data_source**
-> TestResponse test_data_source(data_source_id, body)
+> TestResponse test_data_source(data_source_id, test_request)
Test data source connection by data source id
@@ -168,6 +168,7 @@ Test if it is possible to connect to a database using an existing data source de
import time
import gooddata_scan_client
from gooddata_scan_client.api import actions_api
+from gooddata_scan_client.model.test_request import TestRequest
from gooddata_scan_client.model.test_response import TestResponse
from pprint import pprint
# Defining the host is optional and defaults to http://localhost
@@ -182,12 +183,28 @@ with gooddata_scan_client.ApiClient() as api_client:
# Create an instance of the API class
api_instance = actions_api.ActionsApi(api_client)
data_source_id = "myPostgres" # str | Data source id
- body = {} # {str: (bool, date, datetime, dict, float, int, list, str, none_type)} |
+ test_request = TestRequest(
+ cache_path=[
+ "cache_path_example",
+ ],
+ enable_caching=False,
+ parameters=[
+ DataSourceParameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
+ password="admin123",
+ schema="public",
+ token="token_example",
+ url="jdbc:postgresql://localhost:5432/db_name",
+ username="dbadmin",
+ ) # TestRequest |
# example passing only required values which don't have defaults set
try:
# Test data source connection by data source id
- api_response = api_instance.test_data_source(data_source_id, body)
+ api_response = api_instance.test_data_source(data_source_id, test_request)
pprint(api_response)
except gooddata_scan_client.ApiException as e:
print("Exception when calling ActionsApi->test_data_source: %s\n" % e)
@@ -199,7 +216,7 @@ with gooddata_scan_client.ApiClient() as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**data_source_id** | **str**| Data source id |
- **body** | **{str: (bool, date, datetime, dict, float, int, list, str, none_type)}**| |
+ **test_request** | [**TestRequest**](TestRequest.md)| |
### Return type
@@ -252,6 +269,12 @@ with gooddata_scan_client.ApiClient() as api_client:
# Create an instance of the API class
api_instance = actions_api.ActionsApi(api_client)
test_definition_request = TestDefinitionRequest(
+ parameters=[
+ DataSourceParameter(
+ name="name_example",
+ value="value_example",
+ ),
+ ],
password="admin123",
schema="public",
token="token_example",
diff --git a/gooddata-scan-client/docs/DataSourceParameter.md b/gooddata-scan-client/docs/DataSourceParameter.md
new file mode 100644
index 000000000..37a73f2aa
--- /dev/null
+++ b/gooddata-scan-client/docs/DataSourceParameter.md
@@ -0,0 +1,14 @@
+# DataSourceParameter
+
+A parameter for testing data source connection
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | Parameter name. |
+**value** | **str** | Parameter 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-scan-client/docs/TestDefinitionRequest.md b/gooddata-scan-client/docs/TestDefinitionRequest.md
index b39e5eaba..25d34153d 100644
--- a/gooddata-scan-client/docs/TestDefinitionRequest.md
+++ b/gooddata-scan-client/docs/TestDefinitionRequest.md
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**type** | **str** | Type of database, where test should connect to. |
**url** | **str** | URL to database in JDBC format, where test should connect to. |
+**parameters** | [**[DataSourceParameter]**](DataSourceParameter.md) | | [optional]
**password** | **str** | Database user password. | [optional]
**schema** | **str** | Database schema. | [optional]
**token** | **str** | Secret for token based authentication for data sources which supports it. | [optional]
diff --git a/gooddata-scan-client/docs/TestRequest.md b/gooddata-scan-client/docs/TestRequest.md
new file mode 100644
index 000000000..6164193e1
--- /dev/null
+++ b/gooddata-scan-client/docs/TestRequest.md
@@ -0,0 +1,20 @@
+# TestRequest
+
+A request containing all information for testing existing data source.
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**cache_path** | **[str]** | | [optional]
+**enable_caching** | **bool** | Enable caching of intermediate results. | [optional]
+**parameters** | [**[DataSourceParameter]**](DataSourceParameter.md) | | [optional]
+**password** | **str** | Database user password. | [optional]
+**schema** | **str** | Database schema. | [optional]
+**token** | **str** | Secret for token based authentication for data sources which supports it. | [optional]
+**url** | **str** | URL to database in JDBC format, where test should connect to. | [optional]
+**username** | **str** | Database user name. | [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-scan-client/gooddata_scan_client/api/actions_api.py b/gooddata-scan-client/gooddata_scan_client/api/actions_api.py
index 2883e53f2..fa18a37a1 100644
--- a/gooddata-scan-client/gooddata_scan_client/api/actions_api.py
+++ b/gooddata-scan-client/gooddata_scan_client/api/actions_api.py
@@ -26,6 +26,7 @@
from gooddata_scan_client.model.scan_request import ScanRequest
from gooddata_scan_client.model.scan_result_pdm import ScanResultPdm
from gooddata_scan_client.model.test_definition_request import TestDefinitionRequest
+from gooddata_scan_client.model.test_request import TestRequest
from gooddata_scan_client.model.test_response import TestResponse
@@ -171,11 +172,11 @@ def __init__(self, api_client=None):
params_map={
'all': [
'data_source_id',
- 'body',
+ 'test_request',
],
'required': [
'data_source_id',
- 'body',
+ 'test_request',
],
'nullable': [
],
@@ -199,15 +200,15 @@ def __init__(self, api_client=None):
'openapi_types': {
'data_source_id':
(str,),
- 'body':
- ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},),
+ 'test_request':
+ (TestRequest,),
},
'attribute_map': {
'data_source_id': 'dataSourceId',
},
'location_map': {
'data_source_id': 'path',
- 'body': 'body',
+ 'test_request': 'body',
},
'collection_format_map': {
}
@@ -446,7 +447,7 @@ def scan_data_source(
def test_data_source(
self,
data_source_id,
- body,
+ test_request,
**kwargs
):
"""Test data source connection by data source id # noqa: E501
@@ -455,12 +456,12 @@ def test_data_source(
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
- >>> thread = api.test_data_source(data_source_id, body, async_req=True)
+ >>> thread = api.test_data_source(data_source_id, test_request, async_req=True)
>>> result = thread.get()
Args:
data_source_id (str): Data source id
- body ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}):
+ test_request (TestRequest):
Keyword Args:
_return_http_data_only (bool): response data without head status
@@ -526,8 +527,8 @@ def test_data_source(
kwargs['_request_auths'] = kwargs.get('_request_auths', None)
kwargs['data_source_id'] = \
data_source_id
- kwargs['body'] = \
- body
+ kwargs['test_request'] = \
+ test_request
return self.test_data_source_endpoint.call_with_http_info(**kwargs)
def test_data_source_definition(
diff --git a/gooddata-scan-client/gooddata_scan_client/model/data_source_parameter.py b/gooddata-scan-client/gooddata_scan_client/model/data_source_parameter.py
new file mode 100644
index 000000000..200cae7d0
--- /dev/null
+++ b/gooddata-scan-client/gooddata_scan_client/model/data_source_parameter.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_scan_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_scan_client.exceptions import ApiAttributeError
+
+
+
+class DataSourceParameter(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 {
+ 'name': (str,), # noqa: E501
+ 'value': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'name': 'name', # noqa: E501
+ 'value': 'value', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, name, value, *args, **kwargs): # noqa: E501
+ """DataSourceParameter - a model defined in OpenAPI
+
+ Args:
+ name (str): Parameter name.
+ value (str): Parameter 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.name = name
+ 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, name, value, *args, **kwargs): # noqa: E501
+ """DataSourceParameter - a model defined in OpenAPI
+
+ Args:
+ name (str): Parameter name.
+ value (str): Parameter 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.name = name
+ 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-scan-client/gooddata_scan_client/model/test_definition_request.py b/gooddata-scan-client/gooddata_scan_client/model/test_definition_request.py
index d15d969b7..6fbfb8f93 100644
--- a/gooddata-scan-client/gooddata_scan_client/model/test_definition_request.py
+++ b/gooddata-scan-client/gooddata_scan_client/model/test_definition_request.py
@@ -30,6 +30,10 @@
from gooddata_scan_client.exceptions import ApiAttributeError
+def lazy_import():
+ from gooddata_scan_client.model.data_source_parameter import DataSourceParameter
+ globals()['DataSourceParameter'] = DataSourceParameter
+
class TestDefinitionRequest(ModelNormal):
"""NOTE: This class is auto generated by OpenAPI Generator.
@@ -79,6 +83,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
@@ -93,9 +98,11 @@ def openapi_types():
openapi_types (dict): The key is attribute name
and the value is attribute type.
"""
+ lazy_import()
return {
'type': (str,), # noqa: E501
'url': (str,), # noqa: E501
+ 'parameters': ([DataSourceParameter],), # noqa: E501
'password': (str,), # noqa: E501
'schema': (str,), # noqa: E501
'token': (str,), # noqa: E501
@@ -110,6 +117,7 @@ def discriminator():
attribute_map = {
'type': 'type', # noqa: E501
'url': 'url', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
'password': 'password', # noqa: E501
'schema': 'schema', # noqa: E501
'token': 'token', # noqa: E501
@@ -161,6 +169,7 @@ def _from_openapi_data(cls, type, url, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
+ parameters ([DataSourceParameter]): [optional] # noqa: E501
password (str): Database user password.. [optional] # noqa: E501
schema (str): Database schema.. [optional] # noqa: E501
token (str): Secret for token based authentication for data sources which supports it.. [optional] # noqa: E501
@@ -256,6 +265,7 @@ def __init__(self, type, url, *args, **kwargs): # noqa: E501
Animal class but this time we won't travel
through its discriminator because we passed in
_visited_composed_classes = (Animal,)
+ parameters ([DataSourceParameter]): [optional] # noqa: E501
password (str): Database user password.. [optional] # noqa: E501
schema (str): Database schema.. [optional] # noqa: E501
token (str): Secret for token based authentication for data sources which supports it.. [optional] # noqa: E501
diff --git a/gooddata-scan-client/gooddata_scan_client/model/test_request.py b/gooddata-scan-client/gooddata_scan_client/model/test_request.py
new file mode 100644
index 000000000..27cf26b06
--- /dev/null
+++ b/gooddata-scan-client/gooddata_scan_client/model/test_request.py
@@ -0,0 +1,298 @@
+"""
+ OpenAPI definition
+
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
+
+ The version of the OpenAPI document: v0
+ Contact: support@gooddata.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from gooddata_scan_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_scan_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from gooddata_scan_client.model.data_source_parameter import DataSourceParameter
+ globals()['DataSourceParameter'] = DataSourceParameter
+
+
+class TestRequest(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 {
+ 'cache_path': ([str],), # noqa: E501
+ 'enable_caching': (bool,), # noqa: E501
+ 'parameters': ([DataSourceParameter],), # noqa: E501
+ 'password': (str,), # noqa: E501
+ 'schema': (str,), # noqa: E501
+ 'token': (str,), # noqa: E501
+ 'url': (str,), # noqa: E501
+ 'username': (str,), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'cache_path': 'cachePath', # noqa: E501
+ 'enable_caching': 'enableCaching', # noqa: E501
+ 'parameters': 'parameters', # noqa: E501
+ 'password': 'password', # noqa: E501
+ 'schema': 'schema', # noqa: E501
+ 'token': 'token', # noqa: E501
+ 'url': 'url', # noqa: E501
+ 'username': 'username', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501
+ """TestRequest - 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,)
+ cache_path ([str]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([DataSourceParameter]): [optional] # noqa: E501
+ password (str): Database user password.. [optional] # noqa: E501
+ schema (str): Database schema.. [optional] # noqa: E501
+ token (str): Secret for token based authentication for data sources which supports it.. [optional] # noqa: E501
+ url (str): URL to database in JDBC format, where test should connect to.. [optional] # noqa: E501
+ username (str): Database user name.. [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
+ """TestRequest - 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,)
+ cache_path ([str]): [optional] # noqa: E501
+ enable_caching (bool): Enable caching of intermediate results.. [optional] # noqa: E501
+ parameters ([DataSourceParameter]): [optional] # noqa: E501
+ password (str): Database user password.. [optional] # noqa: E501
+ schema (str): Database schema.. [optional] # noqa: E501
+ token (str): Secret for token based authentication for data sources which supports it.. [optional] # noqa: E501
+ url (str): URL to database in JDBC format, where test should connect to.. [optional] # noqa: E501
+ username (str): Database user name.. [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-scan-client/gooddata_scan_client/models/__init__.py b/gooddata-scan-client/gooddata_scan_client/models/__init__.py
index f2656eb8a..f013bec36 100644
--- a/gooddata-scan-client/gooddata_scan_client/models/__init__.py
+++ b/gooddata-scan-client/gooddata_scan_client/models/__init__.py
@@ -10,6 +10,7 @@
# sys.setrecursionlimit(n)
from gooddata_scan_client.model.column_warning import ColumnWarning
+from gooddata_scan_client.model.data_source_parameter import DataSourceParameter
from gooddata_scan_client.model.data_source_schemata import DataSourceSchemata
from gooddata_scan_client.model.declarative_column import DeclarativeColumn
from gooddata_scan_client.model.declarative_table import DeclarativeTable
@@ -18,4 +19,5 @@
from gooddata_scan_client.model.scan_result_pdm import ScanResultPdm
from gooddata_scan_client.model.table_warning import TableWarning
from gooddata_scan_client.model.test_definition_request import TestDefinitionRequest
+from gooddata_scan_client.model.test_request import TestRequest
from gooddata_scan_client.model.test_response import TestResponse
diff --git a/gooddata-sdk/docs/requirements.txt b/gooddata-sdk/docs/requirements.txt
index 2432ad84a..dd0f3240d 100644
--- a/gooddata-sdk/docs/requirements.txt
+++ b/gooddata-sdk/docs/requirements.txt
@@ -3,7 +3,5 @@ pallets-sphinx-themes
sphinx-rtd-theme
# Dependencies to the other projects in the repository
# CWD_TO_ROOT_RELATIVE defines path to root of repository - it can differ for tox and readthedocs builds
--e${CWD_TO_ROOT_RELATIVE}/gooddata-metadata-client
--e${CWD_TO_ROOT_RELATIVE}/gooddata-afm-client
--e${CWD_TO_ROOT_RELATIVE}/gooddata-scan-client
+-e${CWD_TO_ROOT_RELATIVE}/gooddata-api-client
-e${CWD_TO_ROOT_RELATIVE}/gooddata-sdk
diff --git a/gooddata-sdk/gooddata_sdk/catalog/catalog_service_base.py b/gooddata-sdk/gooddata_sdk/catalog/catalog_service_base.py
index 6667ded4d..9e6e42269 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/catalog_service_base.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/catalog_service_base.py
@@ -3,8 +3,8 @@
from pathlib import Path
-import gooddata_metadata_client.apis as metadata_apis
-from gooddata_metadata_client.model.json_api_organization_out_document import JsonApiOrganizationOutDocument
+import gooddata_api_client.apis as apis
+from gooddata_api_client.model.json_api_organization_out_document import JsonApiOrganizationOutDocument
from gooddata_sdk.catalog.organization.entity_model.organization import CatalogOrganization
from gooddata_sdk.client import GoodDataApiClient
@@ -14,9 +14,9 @@
class CatalogServiceBase:
def __init__(self, api_client: GoodDataApiClient) -> None:
self._client = api_client
- self._entities_api = metadata_apis.EntitiesApi(api_client.metadata_client)
- self._layout_api = metadata_apis.LayoutApi(api_client.metadata_client)
- self._metadata_actions_api = metadata_apis.ActionsApi(api_client.metadata_client)
+ self._entities_api: apis.EntitiesApi = api_client.entities_api
+ self._layout_api: apis.LayoutApi = api_client.layout_api
+ self._actions_api: apis.ActionsApi = api_client.actions_api
def get_organization(self) -> CatalogOrganization:
# The generated client does work properly with redirecting APIs
diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/action_requests/ldm_request.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/action_requests/ldm_request.py
index 29538954a..311a62817 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/data_source/action_requests/ldm_request.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/action_requests/ldm_request.py
@@ -5,7 +5,7 @@
import attr
-from gooddata_metadata_client.model.generate_ldm_request import GenerateLdmRequest
+from gooddata_api_client.model.generate_ldm_request import GenerateLdmRequest
from gooddata_sdk.catalog.base import Base
diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/action_requests/scan_model_request.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/action_requests/scan_model_request.py
index 6812892fe..0ae2de27e 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/data_source/action_requests/scan_model_request.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/action_requests/scan_model_request.py
@@ -6,7 +6,7 @@
import attr
from attr import field
-from gooddata_scan_client.model.scan_request import ScanRequest
+from gooddata_api_client.model.scan_request import ScanRequest
from gooddata_sdk.catalog.base import Base
diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/data_source.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/data_source.py
index 3e46325e7..efa2aa556 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/data_source.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/data_source.py
@@ -6,9 +6,9 @@
import attr
-from gooddata_metadata_client.model.declarative_data_source import DeclarativeDataSource
-from gooddata_metadata_client.model.declarative_data_sources import DeclarativeDataSources
-from gooddata_scan_client.model.test_definition_request import TestDefinitionRequest
+from gooddata_api_client.model.declarative_data_source import DeclarativeDataSource
+from gooddata_api_client.model.declarative_data_sources import DeclarativeDataSources
+from gooddata_api_client.model.test_definition_request import TestDefinitionRequest
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.data_source.declarative_model.physical_model.pdm import CatalogDeclarativeTables
from gooddata_sdk.catalog.entity import TokenCredentialsFromFile
diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py
index bb2451ccc..eac0efc52 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py
@@ -5,7 +5,7 @@
import attr
-from gooddata_metadata_client.model.declarative_column import DeclarativeColumn
+from gooddata_api_client.model.declarative_column import DeclarativeColumn
from gooddata_sdk.catalog.base import Base
diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/pdm.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/pdm.py
index 717b2fdfb..c5f680262 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/pdm.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/pdm.py
@@ -6,7 +6,7 @@
import attr
-from gooddata_metadata_client.model.declarative_tables import DeclarativeTables
+from gooddata_api_client.model.declarative_tables import DeclarativeTables
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.data_source.declarative_model.physical_model.table import CatalogDeclarativeTable
from gooddata_sdk.utils import create_directory
diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/table.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/table.py
index abce3e539..17cf5587b 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/table.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/table.py
@@ -6,7 +6,7 @@
import attr
-from gooddata_metadata_client.model.declarative_table import DeclarativeTable
+from gooddata_api_client.model.declarative_table import DeclarativeTable
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.data_source.declarative_model.physical_model.column import CatalogDeclarativeColumn
from gooddata_sdk.utils import read_layout_from_file, write_layout_to_file
diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/entity_model/data_source.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/entity_model/data_source.py
index 204ae5ac1..b04d0fa33 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/data_source/entity_model/data_source.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/entity_model/data_source.py
@@ -3,12 +3,12 @@
from typing import Any, List, Optional, Tuple, Type
-from gooddata_metadata_client.model.json_api_data_source_in import JsonApiDataSourceIn
-from gooddata_metadata_client.model.json_api_data_source_in_attributes import JsonApiDataSourceInAttributes
-from gooddata_metadata_client.model.json_api_data_source_in_document import JsonApiDataSourceInDocument
-from gooddata_metadata_client.model.json_api_data_source_patch import JsonApiDataSourcePatch
-from gooddata_metadata_client.model.json_api_data_source_patch_attributes import JsonApiDataSourcePatchAttributes
-from gooddata_metadata_client.model.json_api_data_source_patch_document import JsonApiDataSourcePatchDocument
+from gooddata_api_client.model.json_api_data_source_in import JsonApiDataSourceIn
+from gooddata_api_client.model.json_api_data_source_in_attributes import JsonApiDataSourceInAttributes
+from gooddata_api_client.model.json_api_data_source_in_document import JsonApiDataSourceInDocument
+from gooddata_api_client.model.json_api_data_source_patch import JsonApiDataSourcePatch
+from gooddata_api_client.model.json_api_data_source_patch_attributes import JsonApiDataSourcePatchAttributes
+from gooddata_api_client.model.json_api_data_source_patch_document import JsonApiDataSourcePatchDocument
from gooddata_sdk.catalog.entity import (
BasicCredentials,
CatalogNameEntity,
diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/service.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/service.py
index 51da09d52..a8241e01e 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/data_source/service.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/service.py
@@ -5,10 +5,8 @@
from pathlib import Path
from typing import Any, List, Optional
-import gooddata_metadata_client.apis as metadata_apis
-import gooddata_scan_client.apis as scan_client_apis
-from gooddata_metadata_client.exceptions import NotFoundException
-from gooddata_metadata_client.model.declarative_pdm import DeclarativePdm
+from gooddata_api_client.exceptions import NotFoundException
+from gooddata_api_client.model.declarative_pdm import DeclarativePdm
from gooddata_sdk.catalog.catalog_service_base import CatalogServiceBase
from gooddata_sdk.catalog.data_source.action_requests.ldm_request import CatalogGenerateLdmRequest
from gooddata_sdk.catalog.data_source.action_requests.scan_model_request import CatalogScanModelRequest
@@ -32,8 +30,6 @@
class CatalogDataSourceService(CatalogServiceBase):
def __init__(self, api_client: GoodDataApiClient) -> None:
super(CatalogDataSourceService, self).__init__(api_client)
- self._actions_api = metadata_apis.ActionsApi(api_client.metadata_client)
- self._scan_api = scan_client_apis.ActionsApi(api_client.scan_client)
# Entities methods are listed below
@@ -155,7 +151,7 @@ def scan_data_source(
report_warnings: bool = False,
) -> CatalogScanResultPdm:
scan_result = CatalogScanResultPdm.from_api(
- self._scan_api.scan_data_source(data_source_id, scan_request.to_api())
+ self._actions_api.scan_data_source(data_source_id, scan_request.to_api())
)
if report_warnings:
self.report_warnings(scan_result.warnings)
@@ -167,7 +163,7 @@ def scan_and_put_pdm(
self.put_declarative_pdm(data_source_id, self.scan_data_source(data_source_id, scan_request).pdm)
def scan_schemata(self, data_source_id: str) -> list[str]:
- response = self._scan_api.get_data_source_schemata(data_source_id)
+ response = self._actions_api.get_data_source_schemata(data_source_id)
return response.get("schema_names", [])
def test_data_sources_connection(
@@ -179,15 +175,15 @@ def test_data_sources_connection(
if credentials.get(declarative_data_source.id) is not None:
if declarative_data_source.type == BIGQUERY_TYPE:
token = TokenCredentialsFromFile.token_from_file(credentials[declarative_data_source.id])
- response = self._scan_api.test_data_source_definition(
+ response = self._actions_api.test_data_source_definition(
declarative_data_source.to_test_request(token=token)
)
else:
- response = self._scan_api.test_data_source_definition(
+ response = self._actions_api.test_data_source_definition(
declarative_data_source.to_test_request(password=credentials[declarative_data_source.id])
)
else:
- response = self._scan_api.test_data_source_definition(declarative_data_source.to_test_request())
+ response = self._actions_api.test_data_source_definition(declarative_data_source.to_test_request())
if not response.successful:
errors[declarative_data_source.id] = response.error
if len(errors) != 0:
diff --git a/gooddata-sdk/gooddata_sdk/catalog/identifier.py b/gooddata-sdk/gooddata_sdk/catalog/identifier.py
index 219ea5dd3..6d8ebaa5e 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/identifier.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/identifier.py
@@ -5,12 +5,12 @@
import attr
-from gooddata_metadata_client.model.assignee_identifier import AssigneeIdentifier
-from gooddata_metadata_client.model.grain_identifier import GrainIdentifier
-from gooddata_metadata_client.model.label_identifier import LabelIdentifier
-from gooddata_metadata_client.model.reference_identifier import ReferenceIdentifier
-from gooddata_metadata_client.model.user_group_identifier import UserGroupIdentifier
-from gooddata_metadata_client.model.workspace_identifier import WorkspaceIdentifier
+from gooddata_api_client.model.assignee_identifier import AssigneeIdentifier
+from gooddata_api_client.model.grain_identifier import GrainIdentifier
+from gooddata_api_client.model.label_identifier import LabelIdentifier
+from gooddata_api_client.model.reference_identifier import ReferenceIdentifier
+from gooddata_api_client.model.user_group_identifier import UserGroupIdentifier
+from gooddata_api_client.model.workspace_identifier import WorkspaceIdentifier
from gooddata_sdk.catalog.base import Base, value_in_allowed
diff --git a/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/organization.py b/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/organization.py
index 14b32ce18..a944a71ac 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/organization.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/organization/entity_model/organization.py
@@ -5,9 +5,9 @@
import attr
-from gooddata_metadata_client.model.json_api_organization_in import JsonApiOrganizationIn
-from gooddata_metadata_client.model.json_api_organization_in_attributes import JsonApiOrganizationInAttributes
-from gooddata_metadata_client.model.json_api_organization_in_document import JsonApiOrganizationInDocument
+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_sdk.catalog.base import Base
diff --git a/gooddata-sdk/gooddata_sdk/catalog/permission/declarative_model/permission.py b/gooddata-sdk/gooddata_sdk/catalog/permission/declarative_model/permission.py
index ef7da55cf..bca315281 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/permission/declarative_model/permission.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/permission/declarative_model/permission.py
@@ -5,12 +5,10 @@
import attr
-from gooddata_metadata_client.model.declarative_data_source_permission import DeclarativeDataSourcePermission
-from gooddata_metadata_client.model.declarative_single_workspace_permission import DeclarativeSingleWorkspacePermission
-from gooddata_metadata_client.model.declarative_workspace_hierarchy_permission import (
- DeclarativeWorkspaceHierarchyPermission,
-)
-from gooddata_metadata_client.model.declarative_workspace_permissions import DeclarativeWorkspacePermissions
+from gooddata_api_client.model.declarative_data_source_permission import DeclarativeDataSourcePermission
+from gooddata_api_client.model.declarative_single_workspace_permission import DeclarativeSingleWorkspacePermission
+from gooddata_api_client.model.declarative_workspace_hierarchy_permission import DeclarativeWorkspaceHierarchyPermission
+from gooddata_api_client.model.declarative_workspace_permissions import DeclarativeWorkspacePermissions
from gooddata_sdk.catalog.base import Base, value_in_allowed
from gooddata_sdk.catalog.identifier import CatalogAssigneeIdentifier
diff --git a/gooddata-sdk/gooddata_sdk/catalog/setting.py b/gooddata-sdk/gooddata_sdk/catalog/setting.py
index ec27398dc..0ea4c3f9c 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/setting.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/setting.py
@@ -5,7 +5,7 @@
import attr
-from gooddata_metadata_client.model.declarative_setting import DeclarativeSetting
+from gooddata_api_client.model.declarative_setting import DeclarativeSetting
from gooddata_sdk.catalog.base import Base
diff --git a/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user.py b/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user.py
index df9e580a9..2b37e20e7 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user.py
@@ -6,8 +6,8 @@
import attr
-from gooddata_metadata_client.model.declarative_user import DeclarativeUser
-from gooddata_metadata_client.model.declarative_users import DeclarativeUsers
+from gooddata_api_client.model.declarative_user import DeclarativeUser
+from gooddata_api_client.model.declarative_users import DeclarativeUsers
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.identifier import CatalogUserGroupIdentifier
from gooddata_sdk.catalog.setting import CatalogDeclarativeSetting
diff --git a/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user_and_user_groups.py b/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user_and_user_groups.py
index e836e32a4..7987564fa 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user_and_user_groups.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user_and_user_groups.py
@@ -6,7 +6,7 @@
import attr
-from gooddata_metadata_client.model.declarative_users_user_groups import DeclarativeUsersUserGroups
+from gooddata_api_client.model.declarative_users_user_groups import DeclarativeUsersUserGroups
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.user.declarative_model.user import CatalogDeclarativeUser, CatalogDeclarativeUsers
from gooddata_sdk.catalog.user.declarative_model.user_group import (
diff --git a/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user_group.py b/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user_group.py
index 57d87a7dd..8107bbcfd 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user_group.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/user/declarative_model/user_group.py
@@ -6,8 +6,8 @@
import attr
-from gooddata_metadata_client.model.declarative_user_group import DeclarativeUserGroup
-from gooddata_metadata_client.model.declarative_user_groups import DeclarativeUserGroups
+from gooddata_api_client.model.declarative_user_group import DeclarativeUserGroup
+from gooddata_api_client.model.declarative_user_groups import DeclarativeUserGroups
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.identifier import CatalogUserGroupIdentifier
from gooddata_sdk.utils import create_directory, read_layout_from_file, write_layout_to_file
diff --git a/gooddata-sdk/gooddata_sdk/catalog/user/entity_model/user.py b/gooddata-sdk/gooddata_sdk/catalog/user/entity_model/user.py
index 3f0fc7ab0..b582ee43e 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/user/entity_model/user.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/user/entity_model/user.py
@@ -5,8 +5,8 @@
import attr
-from gooddata_metadata_client.model.json_api_user_in import JsonApiUserIn
-from gooddata_metadata_client.model.json_api_user_in_document import JsonApiUserInDocument
+from gooddata_api_client.model.json_api_user_in import JsonApiUserIn
+from gooddata_api_client.model.json_api_user_in_document import JsonApiUserInDocument
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.user.entity_model.user_group import CatalogUserGroup
diff --git a/gooddata-sdk/gooddata_sdk/catalog/user/entity_model/user_group.py b/gooddata-sdk/gooddata_sdk/catalog/user/entity_model/user_group.py
index 1860c4bde..b17f1427a 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/user/entity_model/user_group.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/user/entity_model/user_group.py
@@ -5,8 +5,8 @@
import attr
-from gooddata_metadata_client.model.json_api_user_group_in import JsonApiUserGroupIn
-from gooddata_metadata_client.model.json_api_user_group_in_document import JsonApiUserGroupInDocument
+from gooddata_api_client.model.json_api_user_group_in import JsonApiUserGroupIn
+from gooddata_api_client.model.json_api_user_group_in_document import JsonApiUserGroupInDocument
from gooddata_sdk.catalog.base import Base
diff --git a/gooddata-sdk/gooddata_sdk/catalog/user/service.py b/gooddata-sdk/gooddata_sdk/catalog/user/service.py
index 97d111b55..12cea2308 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/user/service.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/user/service.py
@@ -5,7 +5,7 @@
from pathlib import Path
from typing import List
-from gooddata_metadata_client.exceptions import NotFoundException
+from gooddata_api_client.exceptions import NotFoundException
from gooddata_sdk.catalog.catalog_service_base import CatalogServiceBase
from gooddata_sdk.catalog.user.declarative_model.user import CatalogDeclarativeUsers
from gooddata_sdk.catalog.user.declarative_model.user_and_user_groups import CatalogDeclarativeUsersUserGroups
diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/content_service.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/content_service.py
index c85ea8802..b4704ca17 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/workspace/content_service.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/content_service.py
@@ -5,8 +5,7 @@
from pathlib import Path
from typing import List, Optional, Union
-import gooddata_afm_client.apis as afm_apis
-import gooddata_afm_client.models as afm_models
+import gooddata_api_client.models as afm_models
from gooddata_sdk.catalog.catalog_service_base import CatalogServiceBase
from gooddata_sdk.catalog.data_source.validation.data_source import DataSourceValidator
from gooddata_sdk.catalog.types import ValidObjects
@@ -48,7 +47,6 @@ class CatalogWorkspaceContentService(CatalogServiceBase):
def __init__(self, api_client: GoodDataApiClient) -> None:
super(CatalogWorkspaceContentService, self).__init__(api_client)
- self._afm_actions_api = afm_apis.ActionsApi(api_client.afm_client)
# Entities methods
@@ -121,14 +119,14 @@ def get_facts_catalog(self, workspace_id: str) -> list[CatalogFact]:
def get_dependent_entities_graph(self, workspace_id: str) -> CatalogDependentEntitiesResponse:
return CatalogDependentEntitiesResponse.from_api(
- self._metadata_actions_api.get_dependent_entities_graph(workspace_id=workspace_id)
+ self._actions_api.get_dependent_entities_graph(workspace_id=workspace_id)
)
def get_dependent_entities_graph_from_entry_points(
self, workspace_id: str, dependent_entities_request: CatalogDependentEntitiesRequest
) -> CatalogDependentEntitiesResponse:
return CatalogDependentEntitiesResponse.from_api(
- self._metadata_actions_api.get_dependent_entities_graph_from_entry_points(
+ self._actions_api.get_dependent_entities_graph_from_entry_points(
workspace_id=workspace_id, dependent_entities_request=dependent_entities_request.to_api()
)
)
@@ -234,7 +232,7 @@ def compute_valid_objects(self, workspace_id: str, ctx: ValidObjectsInputType) -
afm = self._prepare_afm_for_availability(_ctx)
query = afm_models.AfmValidObjectsQuery(afm=afm, types=["facts", "attributes", "measures"])
- response = self._afm_actions_api.compute_valid_objects(workspace_id=workspace_id, afm_valid_objects_query=query)
+ response = self._actions_api.compute_valid_objects(workspace_id=workspace_id, afm_valid_objects_query=query)
by_type: dict[str, set[str]] = dict()
diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py
index e695586d9..e60cbe715 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py
@@ -6,13 +6,13 @@
import attr
-from gooddata_metadata_client.model.declarative_analytical_dashboard import DeclarativeAnalyticalDashboard
-from gooddata_metadata_client.model.declarative_analytics import DeclarativeAnalytics
-from gooddata_metadata_client.model.declarative_analytics_layer import DeclarativeAnalyticsLayer
-from gooddata_metadata_client.model.declarative_dashboard_plugin import DeclarativeDashboardPlugin
-from gooddata_metadata_client.model.declarative_filter_context import DeclarativeFilterContext
-from gooddata_metadata_client.model.declarative_metric import DeclarativeMetric
-from gooddata_metadata_client.model.declarative_visualization_object import DeclarativeVisualizationObject
+from gooddata_api_client.model.declarative_analytical_dashboard import DeclarativeAnalyticalDashboard
+from gooddata_api_client.model.declarative_analytics import DeclarativeAnalytics
+from gooddata_api_client.model.declarative_analytics_layer import DeclarativeAnalyticsLayer
+from gooddata_api_client.model.declarative_dashboard_plugin import DeclarativeDashboardPlugin
+from gooddata_api_client.model.declarative_filter_context import DeclarativeFilterContext
+from gooddata_api_client.model.declarative_metric import DeclarativeMetric
+from gooddata_api_client.model.declarative_visualization_object import DeclarativeVisualizationObject
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.utils import create_directory, get_sorted_yaml_files, read_layout_from_file, write_layout_to_file
diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py
index b844a5db9..bc42aaabe 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py
@@ -6,12 +6,12 @@
import attr
-from gooddata_metadata_client.model.data_source_table_identifier import DataSourceTableIdentifier
-from gooddata_metadata_client.model.declarative_attribute import DeclarativeAttribute
-from gooddata_metadata_client.model.declarative_dataset import DeclarativeDataset
-from gooddata_metadata_client.model.declarative_fact import DeclarativeFact
-from gooddata_metadata_client.model.declarative_label import DeclarativeLabel
-from gooddata_metadata_client.model.declarative_reference import DeclarativeReference
+from gooddata_api_client.model.data_source_table_identifier import DataSourceTableIdentifier
+from gooddata_api_client.model.declarative_attribute import DeclarativeAttribute
+from gooddata_api_client.model.declarative_dataset import DeclarativeDataset
+from gooddata_api_client.model.declarative_fact import DeclarativeFact
+from gooddata_api_client.model.declarative_label import DeclarativeLabel
+from gooddata_api_client.model.declarative_reference import DeclarativeReference
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.identifier import CatalogGrainIdentifier, CatalogLabelIdentifier, CatalogReferenceIdentifier
from gooddata_sdk.utils import read_layout_from_file, write_layout_to_file
diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/date_dataset.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/date_dataset.py
index 6da48eba8..282e9ddc5 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/date_dataset.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/date_dataset.py
@@ -6,8 +6,8 @@
import attr
-from gooddata_metadata_client.model.declarative_date_dataset import DeclarativeDateDataset
-from gooddata_metadata_client.model.granularities_formatting import GranularitiesFormatting
+from gooddata_api_client.model.declarative_date_dataset import DeclarativeDateDataset
+from gooddata_api_client.model.granularities_formatting import GranularitiesFormatting
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.utils import read_layout_from_file, write_layout_to_file
diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/ldm.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/ldm.py
index 7c0f90871..92df19e1b 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/ldm.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/ldm.py
@@ -6,8 +6,8 @@
import attr
-from gooddata_metadata_client.model.declarative_ldm import DeclarativeLdm
-from gooddata_metadata_client.model.declarative_model import DeclarativeModel
+from gooddata_api_client.model.declarative_ldm import DeclarativeLdm
+from gooddata_api_client.model.declarative_model import DeclarativeModel
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.workspace.declarative_model.workspace.logical_model.dataset.dataset import (
LAYOUT_DATASETS_DIR,
diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py
index 3f323427e..f05f3d132 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py
@@ -6,14 +6,12 @@
import attr
-from gooddata_metadata_client.model.declarative_workspace import DeclarativeWorkspace
-from gooddata_metadata_client.model.declarative_workspace_data_filter import DeclarativeWorkspaceDataFilter
-from gooddata_metadata_client.model.declarative_workspace_data_filter_setting import (
- DeclarativeWorkspaceDataFilterSetting,
-)
-from gooddata_metadata_client.model.declarative_workspace_data_filters import DeclarativeWorkspaceDataFilters
-from gooddata_metadata_client.model.declarative_workspace_model import DeclarativeWorkspaceModel
-from gooddata_metadata_client.model.declarative_workspaces import DeclarativeWorkspaces
+from gooddata_api_client.model.declarative_workspace import DeclarativeWorkspace
+from gooddata_api_client.model.declarative_workspace_data_filter import DeclarativeWorkspaceDataFilter
+from gooddata_api_client.model.declarative_workspace_data_filter_setting import DeclarativeWorkspaceDataFilterSetting
+from gooddata_api_client.model.declarative_workspace_data_filters import DeclarativeWorkspaceDataFilters
+from gooddata_api_client.model.declarative_workspace_model import DeclarativeWorkspaceModel
+from gooddata_api_client.model.declarative_workspaces import DeclarativeWorkspaces
from gooddata_sdk.catalog.base import Base
from gooddata_sdk.catalog.identifier import CatalogWorkspaceIdentifier
from gooddata_sdk.catalog.permission.declarative_model.permission import (
diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/graph_objects/graph.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/graph_objects/graph.py
index 7d5545fd2..70b0a9ec1 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/graph_objects/graph.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/graph_objects/graph.py
@@ -5,11 +5,11 @@
import attr
-from gooddata_metadata_client.model.dependent_entities_graph import DependentEntitiesGraph
-from gooddata_metadata_client.model.dependent_entities_node import DependentEntitiesNode
-from gooddata_metadata_client.model.dependent_entities_request import DependentEntitiesRequest
-from gooddata_metadata_client.model.dependent_entities_response import DependentEntitiesResponse
-from gooddata_metadata_client.model.entity_identifier import EntityIdentifier
+from gooddata_api_client.model.dependent_entities_graph import DependentEntitiesGraph
+from gooddata_api_client.model.dependent_entities_node import DependentEntitiesNode
+from gooddata_api_client.model.dependent_entities_request import DependentEntitiesRequest
+from gooddata_api_client.model.dependent_entities_response import DependentEntitiesResponse
+from gooddata_api_client.model.entity_identifier import EntityIdentifier
from gooddata_sdk.catalog.base import Base
diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/workspace.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/workspace.py
index ca84f645a..d96e37388 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/workspace.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/workspace.py
@@ -3,14 +3,12 @@
from typing import Any, Optional
-from gooddata_metadata_client.model.json_api_workspace_in import JsonApiWorkspaceIn
-from gooddata_metadata_client.model.json_api_workspace_in_attributes import JsonApiWorkspaceInAttributes
-from gooddata_metadata_client.model.json_api_workspace_in_document import JsonApiWorkspaceInDocument
-from gooddata_metadata_client.model.json_api_workspace_in_relationships import JsonApiWorkspaceInRelationships
-from gooddata_metadata_client.model.json_api_workspace_in_relationships_parent import (
- JsonApiWorkspaceInRelationshipsParent,
-)
-from gooddata_metadata_client.model.json_api_workspace_to_one_linkage import JsonApiWorkspaceToOneLinkage
+from gooddata_api_client.model.json_api_workspace_in import JsonApiWorkspaceIn
+from gooddata_api_client.model.json_api_workspace_in_attributes import JsonApiWorkspaceInAttributes
+from gooddata_api_client.model.json_api_workspace_in_document import JsonApiWorkspaceInDocument
+from gooddata_api_client.model.json_api_workspace_in_relationships import JsonApiWorkspaceInRelationships
+from gooddata_api_client.model.json_api_workspace_in_relationships_parent import JsonApiWorkspaceInRelationshipsParent
+from gooddata_api_client.model.json_api_workspace_to_one_linkage import JsonApiWorkspaceToOneLinkage
from gooddata_sdk.catalog.entity import CatalogNameEntity
diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/service.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/service.py
index 78b6cea82..dff6da33a 100644
--- a/gooddata-sdk/gooddata_sdk/catalog/workspace/service.py
+++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/service.py
@@ -5,7 +5,7 @@
from pathlib import Path
from typing import List
-from gooddata_metadata_client.exceptions import NotFoundException
+from gooddata_api_client.exceptions import NotFoundException
from gooddata_sdk.catalog.catalog_service_base import CatalogServiceBase
from gooddata_sdk.catalog.workspace.declarative_model.workspace.workspace import (
CatalogDeclarativeWorkspaceDataFilters,
diff --git a/gooddata-sdk/gooddata_sdk/client.py b/gooddata-sdk/gooddata_sdk/client.py
index 191c48d6f..e7d35b3f6 100644
--- a/gooddata-sdk/gooddata_sdk/client.py
+++ b/gooddata-sdk/gooddata_sdk/client.py
@@ -2,12 +2,14 @@
""" Module containing a class that provides access to metadata and afm services.
"""
-
from __future__ import annotations
from typing import Optional
+from warnings import warn
import gooddata_afm_client as afm_client
+import gooddata_api_client as api_client
+import gooddata_api_client.apis as apis
import gooddata_metadata_client as metadata_client
import gooddata_scan_client as scan_client
from gooddata_sdk import __version__
@@ -39,6 +41,22 @@ def __init__(
user_agent = f"{USER_AGENT} {extra_user_agent}" if extra_user_agent is not None else USER_AGENT
+ self._api_config = api_client.Configuration(host=host)
+ self._api_client = api_client.ApiClient(
+ configuration=self._api_config,
+ header_name="Authorization",
+ header_value=f"Bearer {token}",
+ )
+ self._set_default_headers(self._api_client.default_headers)
+ for header_name, header_value in self._custom_headers.items():
+ self._api_client.default_headers[header_name] = header_value
+ self._api_client.user_agent = user_agent
+
+ self._entities_api = apis.EntitiesApi(self._api_client)
+ self._layout_api = apis.LayoutApi(self._api_client)
+ self._actions_api = apis.ActionsApi(self._api_client)
+
+ # The initialization below will be deleted with version 2.0
self._metadata_config = metadata_client.Configuration(host=host)
self._metadata_client = metadata_client.ApiClient(
configuration=self._metadata_config,
@@ -79,12 +97,42 @@ def _set_default_headers(headers: dict) -> None:
@property
def afm_client(self) -> afm_client.ApiClient:
+ warn(
+ "This property is deprecated and it will be removed in PythonSDK 2.0. "
+ "Please use entities_api, layout_api, actions_api properties instead.",
+ DeprecationWarning,
+ stacklevel=2,
+ )
return self._afm_client
@property
def metadata_client(self) -> metadata_client.ApiClient:
+ warn(
+ "This property is deprecated and it will be removed in PythonSDK 2.0. "
+ "Please use entities_api, layout_api, actions_api properties instead.",
+ DeprecationWarning,
+ stacklevel=2,
+ )
return self._metadata_client
@property
def scan_client(self) -> scan_client.ApiClient:
+ warn(
+ "This property is deprecated and it will be removed in PythonSDK 2.0. "
+ "Please use entities_api, layout_api, actions_api properties instead.",
+ DeprecationWarning,
+ stacklevel=2,
+ )
return self._scan_client
+
+ @property
+ def entities_api(self) -> apis.EntitiesApi:
+ return self._entities_api
+
+ @property
+ def layout_api(self) -> apis.LayoutApi:
+ return self._layout_api
+
+ @property
+ def actions_api(self) -> apis.ActionsApi:
+ return self._actions_api
diff --git a/gooddata-sdk/gooddata_sdk/compute/model/attribute.py b/gooddata-sdk/gooddata_sdk/compute/model/attribute.py
index abf2ab976..a56fda8e0 100644
--- a/gooddata-sdk/gooddata_sdk/compute/model/attribute.py
+++ b/gooddata-sdk/gooddata_sdk/compute/model/attribute.py
@@ -3,7 +3,7 @@
from typing import Union
-import gooddata_afm_client.models as afm_models
+import gooddata_api_client.models as afm_models
from gooddata_sdk.compute.model.base import ExecModelEntity, ObjId
diff --git a/gooddata-sdk/gooddata_sdk/compute/model/base.py b/gooddata-sdk/gooddata_sdk/compute/model/base.py
index adb0835e9..6e1527933 100644
--- a/gooddata-sdk/gooddata_sdk/compute/model/base.py
+++ b/gooddata-sdk/gooddata_sdk/compute/model/base.py
@@ -3,8 +3,8 @@
from typing import Union
-import gooddata_afm_client.models as afm_models
-from gooddata_afm_client.model_utils import OpenApiModel
+import gooddata_api_client.models as afm_models
+from gooddata_api_client.model_utils import OpenApiModel
class ObjId:
diff --git a/gooddata-sdk/gooddata_sdk/compute/model/execution.py b/gooddata-sdk/gooddata_sdk/compute/model/execution.py
index 04b9a1a1c..73a982d68 100644
--- a/gooddata-sdk/gooddata_sdk/compute/model/execution.py
+++ b/gooddata-sdk/gooddata_sdk/compute/model/execution.py
@@ -5,10 +5,10 @@
from attrs import define, field
-import gooddata_afm_client.apis as apis
-import gooddata_afm_client.models as models
-from gooddata_afm_client.model.afm import AFM
-from gooddata_afm_client.model.result_spec import ResultSpec
+import gooddata_api_client.apis as apis
+import gooddata_api_client.models as models
+from gooddata_api_client.model.afm import AFM
+from gooddata_api_client.model.result_spec import ResultSpec
from gooddata_sdk.compute.model.attribute import Attribute
from gooddata_sdk.compute.model.filter import Filter
from gooddata_sdk.compute.model.metric import Metric
diff --git a/gooddata-sdk/gooddata_sdk/compute/model/filter.py b/gooddata-sdk/gooddata_sdk/compute/model/filter.py
index b43eca37e..80c9e5994 100644
--- a/gooddata-sdk/gooddata_sdk/compute/model/filter.py
+++ b/gooddata-sdk/gooddata_sdk/compute/model/filter.py
@@ -3,17 +3,17 @@
from typing import Optional, Union
-import gooddata_afm_client.models as afm_models
-from gooddata_afm_client.model_utils import OpenApiModel
-from gooddata_afm_client.models import AbsoluteDateFilterAbsoluteDateFilter as AbsoluteDateFilterBody
-from gooddata_afm_client.models import (
+import gooddata_api_client.models as afm_models
+from gooddata_api_client.model_utils import OpenApiModel
+from gooddata_api_client.models import AbsoluteDateFilterAbsoluteDateFilter as AbsoluteDateFilterBody
+from gooddata_api_client.models import (
ComparisonMeasureValueFilterComparisonMeasureValueFilter as ComparisonMeasureValueFilterBody,
)
-from gooddata_afm_client.models import NegativeAttributeFilterNegativeAttributeFilter as NegativeAttributeFilterBody
-from gooddata_afm_client.models import PositiveAttributeFilterPositiveAttributeFilter as PositiveAttributeFilterBody
-from gooddata_afm_client.models import RangeMeasureValueFilterRangeMeasureValueFilter as RangeMeasureValueFilterBody
-from gooddata_afm_client.models import RankingFilterRankingFilter as RankingFilterBody
-from gooddata_afm_client.models import RelativeDateFilterRelativeDateFilter as RelativeDateFilterBody
+from gooddata_api_client.models import NegativeAttributeFilterNegativeAttributeFilter as NegativeAttributeFilterBody
+from gooddata_api_client.models import PositiveAttributeFilterPositiveAttributeFilter as PositiveAttributeFilterBody
+from gooddata_api_client.models import RangeMeasureValueFilterRangeMeasureValueFilter as RangeMeasureValueFilterBody
+from gooddata_api_client.models import RankingFilterRankingFilter as RankingFilterBody
+from gooddata_api_client.models import RelativeDateFilterRelativeDateFilter as RelativeDateFilterBody
from gooddata_sdk.compute.model.attribute import Attribute
from gooddata_sdk.compute.model.base import Filter, ObjId
from gooddata_sdk.compute.model.metric import Metric
diff --git a/gooddata-sdk/gooddata_sdk/compute/model/metric.py b/gooddata-sdk/gooddata_sdk/compute/model/metric.py
index 198c127d0..0569b81b2 100644
--- a/gooddata-sdk/gooddata_sdk/compute/model/metric.py
+++ b/gooddata-sdk/gooddata_sdk/compute/model/metric.py
@@ -3,8 +3,8 @@
from typing import Optional, Union
-import gooddata_afm_client.models as afm_models
-from gooddata_afm_client.model_utils import OpenApiModel
+import gooddata_api_client.models as afm_models
+from gooddata_api_client.model_utils import OpenApiModel
from gooddata_sdk.compute.model.attribute import Attribute
from gooddata_sdk.compute.model.base import ExecModelEntity, Filter, ObjId
diff --git a/gooddata-sdk/gooddata_sdk/compute/service.py b/gooddata-sdk/gooddata_sdk/compute/service.py
index 8a604046d..56e1cd43c 100644
--- a/gooddata-sdk/gooddata_sdk/compute/service.py
+++ b/gooddata-sdk/gooddata_sdk/compute/service.py
@@ -1,7 +1,6 @@
# (C) 2022 GoodData Corporation
from __future__ import annotations
-from gooddata_afm_client import apis
from gooddata_sdk.client import GoodDataApiClient
from gooddata_sdk.compute.model.execution import Execution, ExecutionDefinition, ResultCacheMetadata
@@ -14,7 +13,7 @@ class ComputeService:
"""
def __init__(self, api_client: GoodDataApiClient):
- self._actions_api = apis.ActionsApi(api_client.afm_client)
+ self._actions_api = api_client.actions_api
def for_exec_def(self, workspace_id: str, exec_def: ExecutionDefinition) -> Execution:
"""
diff --git a/gooddata-sdk/gooddata_sdk/insight.py b/gooddata-sdk/gooddata_sdk/insight.py
index a151588df..663f62182 100644
--- a/gooddata-sdk/gooddata_sdk/insight.py
+++ b/gooddata-sdk/gooddata_sdk/insight.py
@@ -4,7 +4,6 @@
import functools
from typing import Any, Optional, Union, cast
-import gooddata_metadata_client.apis as metadata_apis
from gooddata_sdk.client import GoodDataApiClient
from gooddata_sdk.compute.model.attribute import Attribute
from gooddata_sdk.compute.model.base import ObjId
@@ -470,7 +469,7 @@ class InsightService:
# access returned object's properties
def __init__(self, api_client: GoodDataApiClient) -> None:
- self._entities_api = metadata_apis.EntitiesApi(api_client.metadata_client)
+ self._entities_api = api_client.entities_api
def get_insights(self, workspace_id: str) -> list[Insight]:
"""
diff --git a/gooddata-sdk/gooddata_sdk/support.py b/gooddata-sdk/gooddata_sdk/support.py
index 42fc6daab..b0289b1ce 100644
--- a/gooddata-sdk/gooddata_sdk/support.py
+++ b/gooddata-sdk/gooddata_sdk/support.py
@@ -5,14 +5,13 @@
import urllib3.exceptions as urllib3_ex
-import gooddata_metadata_client.apis as metadata_apis
-import gooddata_metadata_client.exceptions as metadata_ex
+import gooddata_api_client.exceptions as exceptions
from gooddata_sdk.client import GoodDataApiClient
class SupportService:
def __init__(self, api_client: GoodDataApiClient) -> None:
- self._entities_api = metadata_apis.EntitiesApi(api_client.metadata_client)
+ self._entities_api = api_client.entities_api
@property
def is_available(self) -> bool:
@@ -25,10 +24,10 @@ def is_available(self) -> bool:
try:
self._entities_api.get_all_options()
return True
- except (metadata_ex.ForbiddenException, metadata_ex.UnauthorizedException):
+ except (exceptions.ForbiddenException, exceptions.UnauthorizedException):
# do not consider invalid credentials or missing rights "not available" state
raise
- except metadata_ex.ApiException:
+ except exceptions.ApiException:
# invalid response from GD.CN - GD.CN is still booting but endpoint is receiving connections already
return False
except urllib3_ex.MaxRetryError:
diff --git a/gooddata-sdk/gooddata_sdk/utils.py b/gooddata-sdk/gooddata_sdk/utils.py
index 026839b52..0f3e1e217 100644
--- a/gooddata-sdk/gooddata_sdk/utils.py
+++ b/gooddata-sdk/gooddata_sdk/utils.py
@@ -11,7 +11,7 @@
import yaml
-from gooddata_metadata_client import ApiAttributeError
+from gooddata_api_client import ApiAttributeError
from gooddata_sdk.compute.model.base import ObjId
# Use typing collection types to support python < py3.9
@@ -72,9 +72,9 @@ def load_all_entities(get_page_func: functools.partial[Any], page_size: int = 50
An example usage:
>>> import functools
- >>> import gooddata_metadata_client as metadata_client
- >>> import gooddata_metadata_client.apis as metadata_apis
- >>> api = metadata_apis.EntitiesApi(metadata_client.ApiClient())
+ >>> import gooddata_api_client as api_client
+ >>> import gooddata_api_client.apis as apis
+ >>> api = apis.EntitiesApi(api_client.ApiClient())
>>> get_func = functools.partial(api.get_all_entities_visualization_objects, 'some-workspace-id',
>>> include=["ALL"], _check_return_type=False)
>>> vis_objects = load_all_entities(get_func)
diff --git a/gooddata-sdk/mypy.ini b/gooddata-sdk/mypy.ini
index e820d8401..b3e1427af 100644
--- a/gooddata-sdk/mypy.ini
+++ b/gooddata-sdk/mypy.ini
@@ -15,5 +15,8 @@ ignore_missing_imports = True
[mypy-gooddata_scan_client.*]
ignore_missing_imports = True
+[mypy-gooddata_api_client.*]
+ignore_missing_imports = True
+
[mypy-urllib3.*]
ignore_missing_imports = True
diff --git a/gooddata-sdk/setup.py b/gooddata-sdk/setup.py
index a9606b211..d96d3f848 100644
--- a/gooddata-sdk/setup.py
+++ b/gooddata-sdk/setup.py
@@ -10,6 +10,7 @@
"gooddata-afm-client~=1.1.0",
"gooddata-metadata-client~=1.1.0",
"gooddata-scan-client~=1.1.0",
+ "gooddata-api-client~=1.1.0",
'importlib-metadata >= 1.0 ; python_version >= "3.7"',
"python-dateutil>=2.5.3",
"pyyaml>=5.1",
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml
index 47073ec3f..f4008c33b 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: 7bccdd2343e760f1
+ traceId: dfbb06650f1f4d72
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/dataSources
@@ -104,7 +104,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -114,6 +114,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '340'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -139,37 +141,35 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=0param=value;ProjectId=gdc-us-dev
enableCaching: true
cachePath:
- cache_schema
name: Test
type: BIGQUERY
- url: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=0param=value;ProjectId=gdc-us-dev
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -184,7 +184,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -206,6 +206,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -217,21 +219,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/declarative_data_sources.yaml
index 9ad5e03e4..8c768184b 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/declarative_data_sources.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/declarative_data_sources.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2682'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,164 +53,162 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
- request:
method: GET
uri: http://localhost:3000/api/v1/layout/dataSources
@@ -223,7 +223,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -233,6 +233,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2682'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -258,161 +260,159 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_source_tables.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_source_tables.yaml
index a60b69f19..8b77dfc17 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_source_tables.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_source_tables.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4564'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,28 +53,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataSourceTable
+ attributes:
path:
- demo
- campaign_channels
@@ -108,11 +110,11 @@ interactions:
isPrimaryKey: false
referencedTableId: null
referencedTableColumn: null
- id: campaign_channels
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds/dataSourceTables/campaign_channels
+ - id: campaigns
type: dataSourceTable
- - attributes:
+ attributes:
path:
- demo
- campaigns
@@ -128,11 +130,11 @@ interactions:
isPrimaryKey: false
referencedTableId: null
referencedTableColumn: null
- id: campaigns
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds/dataSourceTables/campaigns
+ - id: customers
type: dataSourceTable
- - attributes:
+ attributes:
path:
- demo
- customers
@@ -163,11 +165,11 @@ interactions:
isPrimaryKey: false
referencedTableId: null
referencedTableColumn: null
- id: customers
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds/dataSourceTables/customers
+ - id: order_lines
type: dataSourceTable
- - attributes:
+ attributes:
path:
- demo
- order_lines
@@ -228,11 +230,11 @@ interactions:
isPrimaryKey: false
referencedTableId: null
referencedTableColumn: null
- id: order_lines
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds/dataSourceTables/order_lines
+ - id: products
type: dataSourceTable
- - attributes:
+ attributes:
path:
- demo
- products
@@ -253,10 +255,8 @@ interactions:
isPrimaryKey: false
referencedTableId: null
referencedTableColumn: null
- id: products
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds/dataSourceTables/products
- type: dataSourceTable
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds/dataSourceTables?page=0&size=500
next: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds/dataSourceTables?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_sources_list.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_sources_list.yaml
index a29581a67..ecf4bfc03 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_sources_list.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_sources_list.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '457'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,38 +53,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo-test-ds
+ type: dataSource
+ attributes:
+ url: jdbc:postgresql://localhost:5432/demo
username: demouser
enableCaching: false
name: demo-test-ds
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
schema: demo
- id: demo-test-ds
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources?page=0&size=500
next: http://localhost:3000/api/v1/entities/dataSources?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_delete_declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_delete_declarative_data_sources.yaml
index b6b90af09..466ed43da 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_delete_declarative_data_sources.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_delete_declarative_data_sources.yaml
@@ -16,7 +16,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -38,6 +38,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: &id001
- PLACEHOLDER
Expires:
@@ -50,22 +52,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -82,7 +84,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -92,6 +94,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '18'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -117,24 +121,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources: []
@@ -291,7 +293,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -313,6 +315,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -324,21 +328,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml
index e91fb2e59..b37038a2c 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,72 +53,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -124,131 +121,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -274,47 +271,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -331,13 +336,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: POST
uri: http://localhost:3000/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel
@@ -356,7 +356,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -366,6 +366,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4809'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -391,72 +393,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -464,131 +461,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -614,47 +611,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - granularities:
+ - id: date
+ title: Date
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
- MINUTE
- HOUR
- DAY
@@ -670,10 +675,5 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml
index 080b9ca4d..ccbfd7467 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml
@@ -16,7 +16,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -38,6 +38,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: &id001
- PLACEHOLDER
Expires:
@@ -50,22 +52,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -80,7 +82,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -90,6 +92,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -115,24 +119,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -147,7 +149,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -157,6 +159,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -182,33 +186,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -502,7 +504,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -524,6 +526,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -535,22 +539,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -567,7 +571,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -577,6 +581,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '5441'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -602,301 +608,299 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: true
- id: demo-bigquery-ds
+ - id: demo-bigquery-ds
name: demo-bigquery-ds
+ type: BIGQUERY
+ url: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=0;ProjectId=test
+ schema: demo
+ enableCaching: true
pdm:
tables: []
permissions: []
- schema: demo
- type: BIGQUERY
- url: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=0;ProjectId=test
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
- - enableCaching: true
- id: demo-vertica-ds
+ - id: demo-vertica-ds
name: demo-vertica-ds
+ type: VERTICA
+ url: jdbc:vertica://localhost:5434/demo
+ schema: demo
+ enableCaching: true
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions: []
- schema: demo
- type: VERTICA
- url: jdbc:vertica://localhost:5434/demo
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/dataSources
@@ -1050,7 +1054,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1072,6 +1076,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -1083,21 +1089,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml
index 3cd9ceb38..fdeb5acb4 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2682'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,164 +53,162 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/dataSources
@@ -362,7 +362,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -384,6 +384,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -395,22 +397,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -427,7 +429,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -437,6 +439,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2682'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -462,164 +466,162 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/dataSources
@@ -773,7 +775,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -795,6 +797,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -806,21 +810,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml
index 8b142f94d..52deea46f 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2682'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,164 +53,162 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
- request:
method: POST
uri: http://localhost:3000/api/v1/actions/dataSource/test
@@ -439,7 +439,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -461,6 +461,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -472,22 +474,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -504,7 +506,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -514,6 +516,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2682'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -539,164 +543,162 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/dataSources
@@ -850,7 +852,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -872,6 +874,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -883,21 +887,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml
index 4ecd9659a..cc27b97a0 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,59 +53,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -111,107 +113,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -219,114 +221,112 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
@@ -428,7 +428,7 @@ interactions:
name: '# of Active Customers'
localIdentifier: dim_0
links:
- executionResult: 275e455fb526f059457c6a43b5f254e44dd9769b
+ executionResult: a3275a1fc4478fb5cf51e171dfb11fa98dc075cf
- request:
method: POST
uri: http://localhost:3000/api/v1/actions/dataSources/demo-test-ds/uploadNotification
@@ -443,7 +443,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -465,6 +465,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -476,22 +478,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -592,4 +594,4 @@ interactions:
name: '# of Active Customers'
localIdentifier: dim_0
links:
- executionResult: 0da98a6430c16e091b0cdbc67a977d71edffc925
+ executionResult: 555e0835bba3315dfd3286f26c14ebdea672fff0
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_and_load_and_put_declarative_pdm.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_and_load_and_put_declarative_pdm.yaml
index b7296af0a..91ffc9109 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_and_load_and_put_declarative_pdm.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_and_load_and_put_declarative_pdm.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2358'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,147 +53,145 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -204,7 +204,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -214,6 +214,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -239,24 +241,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -271,7 +271,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -281,6 +281,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -306,33 +308,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -349,7 +349,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -359,6 +359,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2358'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -384,147 +386,145 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -537,7 +537,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -547,6 +547,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -572,24 +574,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -604,7 +604,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -614,6 +614,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -639,33 +641,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -680,7 +680,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -690,6 +690,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -715,24 +717,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -747,7 +747,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -757,6 +757,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -782,33 +784,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -946,7 +946,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -968,6 +968,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -979,22 +981,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -1009,7 +1011,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1019,6 +1021,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1044,24 +1048,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -1076,7 +1078,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1086,6 +1088,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1111,32 +1115,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml
index d19fbe62e..4afbb0ce6 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2682'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,164 +53,162 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
- request:
method: GET
uri: http://localhost:3000/api/v1/layout/dataSources
@@ -223,7 +223,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -233,6 +233,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2682'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -258,164 +260,162 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -428,7 +428,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -438,6 +438,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -463,24 +465,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -495,7 +495,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -505,6 +505,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -530,33 +532,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -571,7 +571,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -581,6 +581,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -606,24 +608,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -638,7 +638,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -648,6 +648,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -673,32 +675,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml
index a640104b6..ed48ad1cb 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2682'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,164 +53,162 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
dataSources:
- - enableCaching: false
- id: demo-test-ds
+ - id: demo-test-ds
name: demo-test-ds
+ type: POSTGRESQL
+ url: jdbc:postgresql://localhost:5432/demo
+ schema: demo
+ username: demouser
+ enableCaching: false
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
permissions:
- - assignee:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: USE
+ assignee:
id: demoGroup
type: userGroup
- name: USE
- schema: demo
- type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
- username: demouser
- request:
method: POST
uri: http://localhost:3000/api/v1/actions/dataSource/test
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_get_declarative_pdm.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_get_declarative_pdm.yaml
index dcb88f3dd..0a0a4c45a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_get_declarative_pdm.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_get_declarative_pdm.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2358'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,144 +53,142 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_put_declarative_pdm.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_put_declarative_pdm.yaml
index b4685aa0a..5a42f299a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_put_declarative_pdm.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_put_declarative_pdm.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2358'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,147 +53,145 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/dataSources/demo-test-ds/physicalModel
@@ -282,7 +282,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -304,6 +304,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -315,22 +317,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -468,7 +470,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -490,6 +492,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -501,21 +505,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_and_put_declarative_pdm.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_and_put_declarative_pdm.yaml
index 3286fc4c4..8a112888f 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_and_put_declarative_pdm.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_and_put_declarative_pdm.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2358'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,147 +53,145 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
- request:
method: POST
uri: http://localhost:3000/api/v1/actions/dataSources/demo-test-ds/scan
@@ -285,7 +285,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -307,6 +307,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -318,22 +320,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -350,7 +352,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -360,6 +362,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '21'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -385,24 +389,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
pdm:
@@ -738,7 +740,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -760,6 +762,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -771,22 +775,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -803,7 +807,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -813,6 +817,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '2358'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -838,144 +844,142 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
pdm:
tables:
- - columns:
- - dataType: NUMERIC
+ - id: campaign_channels
+ path:
+ - demo
+ - campaign_channels
+ type: TABLE
+ columns:
+ - name: budget
+ dataType: NUMERIC
isPrimaryKey: false
- name: budget
- - dataType: STRING
+ - name: campaign_channel_id
+ dataType: STRING
isPrimaryKey: true
- name: campaign_channel_id
- - dataType: INT
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: STRING
+ referencedTableColumn: campaign_id
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: NUMERIC
+ - name: spend
+ dataType: NUMERIC
isPrimaryKey: false
- name: spend
- - dataType: STRING
+ - name: type
+ dataType: STRING
isPrimaryKey: false
- name: type
- id: campaign_channels
+ - id: campaigns
path:
- demo
- - campaign_channels
+ - campaigns
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: true
- name: campaign_id
- - dataType: STRING
+ - name: campaign_name
+ dataType: STRING
isPrimaryKey: false
- name: campaign_name
- id: campaigns
+ - id: customers
path:
- demo
- - campaigns
+ - customers
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: customer_id
+ dataType: INT
isPrimaryKey: true
- name: customer_id
- - dataType: STRING
+ - name: customer_name
+ dataType: STRING
isPrimaryKey: false
- name: customer_name
- - dataType: STRING
+ - name: geo__state__location
+ dataType: STRING
isPrimaryKey: false
- name: geo__state__location
- - dataType: STRING
+ - name: region
+ dataType: STRING
isPrimaryKey: false
- name: region
- - dataType: STRING
+ - name: state
+ dataType: STRING
isPrimaryKey: false
- name: state
- id: customers
+ - id: order_lines
path:
- demo
- - customers
+ - order_lines
type: TABLE
- - columns:
- - dataType: INT
+ columns:
+ - name: campaign_id
+ dataType: INT
isPrimaryKey: false
- name: campaign_id
- referencedTableColumn: campaign_id
referencedTableId: campaigns
- - dataType: INT
+ referencedTableColumn: campaign_id
+ - name: customer_id
+ dataType: INT
isPrimaryKey: false
- name: customer_id
- referencedTableColumn: customer_id
referencedTableId: customers
- - dataType: DATE
+ referencedTableColumn: customer_id
+ - name: date
+ dataType: DATE
isPrimaryKey: false
- name: date
- - dataType: STRING
+ - name: order_id
+ dataType: STRING
isPrimaryKey: false
- name: order_id
- - dataType: STRING
+ - name: order_line_id
+ dataType: STRING
isPrimaryKey: true
- name: order_line_id
- - dataType: STRING
+ - name: order_status
+ dataType: STRING
isPrimaryKey: false
- name: order_status
- - dataType: NUMERIC
+ - name: price
+ dataType: NUMERIC
isPrimaryKey: false
- name: price
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: false
- name: product_id
- referencedTableColumn: product_id
referencedTableId: products
- - dataType: NUMERIC
+ referencedTableColumn: product_id
+ - name: quantity
+ dataType: NUMERIC
isPrimaryKey: false
- name: quantity
- - dataType: STRING
+ - name: wdf__region
+ dataType: STRING
isPrimaryKey: false
- name: wdf__region
- - dataType: STRING
+ - name: wdf__state
+ dataType: STRING
isPrimaryKey: false
- name: wdf__state
- id: order_lines
+ - id: products
path:
- demo
- - order_lines
+ - products
type: TABLE
- - columns:
- - dataType: STRING
+ columns:
+ - name: category
+ dataType: STRING
isPrimaryKey: false
- name: category
- - dataType: INT
+ - name: product_id
+ dataType: INT
isPrimaryKey: true
- name: product_id
- - dataType: STRING
+ - name: product_name
+ dataType: STRING
isPrimaryKey: false
- name: product_name
- id: products
- path:
- - demo
- - products
- type: TABLE
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml
index 24357df19..5024624df 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: dfb8ff1991a42e12
+ traceId: ae3092a6e710f929
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/dataSources
@@ -105,7 +105,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -115,6 +115,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '287'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -140,38 +142,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: dremio
+ type: dataSource
attributes:
+ url: jdbc:dremio:direct=dremio:31010
username: demouser
enableCaching: true
cachePath:
- $scratch
name: Dremio
type: DREMIO
- url: jdbc:dremio:direct=dremio:31010
schema: ''
- id: dremio
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/dremio
- request:
@@ -186,7 +186,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -208,6 +208,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -219,21 +221,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml
index 082ccd5a5..eac8ce37d 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '457'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,38 +53,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo-test-ds
+ type: dataSource
+ attributes:
+ url: jdbc:postgresql://localhost:5432/demo
username: demouser
enableCaching: false
name: demo-test-ds
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
schema: demo
- id: demo-test-ds
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources?page=0&size=500
next: http://localhost:3000/api/v1/entities/dataSources?page=1&size=500
@@ -100,7 +100,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -110,6 +110,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -135,31 +137,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: a248b579202e59aa
+ traceId: 4b7371637c1f5040
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/dataSources
@@ -189,7 +189,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -199,6 +199,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '310'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -224,38 +226,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:postgresql://localhost:5432/demoparam=value
username: demouser
enableCaching: true
cachePath:
- cache_schema
name: Test
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -272,7 +272,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -282,6 +282,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '310'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -307,38 +309,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:postgresql://localhost:5432/demoparam=value
username: demouser
enableCaching: true
cachePath:
- cache_schema
name: Test
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -355,7 +355,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -365,6 +365,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '310'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -390,38 +392,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:postgresql://localhost:5432/demoparam=value
username: demouser
enableCaching: true
cachePath:
- cache_schema
name: Test
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -446,7 +446,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -456,6 +456,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '311'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -481,38 +483,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:postgresql://localhost:5432/demoparam=value
username: demouser
enableCaching: true
cachePath:
- cache_schema
name: Test2
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -529,7 +529,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -539,6 +539,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '311'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -564,38 +566,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:postgresql://localhost:5432/demoparam=value
username: demouser
enableCaching: true
cachePath:
- cache_schema
name: Test2
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -610,7 +610,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -632,6 +632,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -643,21 +645,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml
index f8d61ae51..716f54b7a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: cc14e22945d5017e
+ traceId: 4846860468b37ab8
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/dataSources
@@ -103,7 +103,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -113,6 +113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '282'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -138,36 +140,34 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:redshift://aws.endpoint:5439/demoparam=value
username: demouser
enableCaching: false
name: Test2
type: REDSHIFT
- url: jdbc:redshift://aws.endpoint:5439/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -182,7 +182,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -204,6 +204,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -215,21 +217,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml
index 7cf46fa0d..7294bd0e5 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: f6b59cbc283a1abd
+ traceId: 3f7cbf4b70183cec
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/dataSources
@@ -105,7 +105,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -115,6 +115,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '362'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -140,38 +142,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&warehouse=TIGER
username: demouser
enableCaching: true
cachePath:
- cache_schema
name: Test
type: SNOWFLAKE
- url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&warehouse=TIGER
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -186,7 +186,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -208,6 +208,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -219,21 +221,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/test.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/test.yaml
index d8471390b..fee4c47a9 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/test.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/test.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,59 +53,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -111,107 +113,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -219,114 +221,112 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml
index 70d7296ed..4bf32b381 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '457'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,38 +53,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo-test-ds
+ type: dataSource
+ attributes:
+ url: jdbc:postgresql://localhost:5432/demo
username: demouser
enableCaching: false
name: demo-test-ds
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
schema: demo
- id: demo-test-ds
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources?page=0&size=500
next: http://localhost:3000/api/v1/entities/dataSources?page=1&size=500
@@ -100,7 +100,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -110,6 +110,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -135,31 +137,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: aa1c600f15e06920
+ traceId: 9fddcf9d8933e283
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/dataSources
@@ -189,7 +189,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -199,6 +199,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '310'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -224,38 +226,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:postgresql://localhost:5432/demoparam=value
username: demouser
enableCaching: true
cachePath:
- cache_schema
name: Test
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -272,7 +272,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -282,6 +282,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '310'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -307,38 +309,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:postgresql://localhost:5432/demoparam=value
username: demouser
enableCaching: true
cachePath:
- cache_schema
name: Test
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -368,7 +368,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -378,6 +378,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '283'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -403,36 +405,34 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:postgresql://localhost:5432/demoparam=value
username: demouser
enableCaching: false
name: Test2
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -449,7 +449,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -459,6 +459,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '732'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -484,49 +486,47 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo-test-ds
+ type: dataSource
+ attributes:
+ url: jdbc:postgresql://localhost:5432/demo
username: demouser
enableCaching: false
name: demo-test-ds
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
schema: demo
- id: demo-test-ds
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds
+ - id: test
type: dataSource
- - attributes:
+ attributes:
+ url: jdbc:postgresql://localhost:5432/demoparam=value
username: demouser
enableCaching: false
name: Test2
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demoparam=value
schema: demo
- id: test
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources?page=0&size=500
next: http://localhost:3000/api/v1/entities/dataSources?page=1&size=500
@@ -542,7 +542,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -564,6 +564,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -575,22 +577,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -607,7 +609,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -617,6 +619,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '457'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -642,38 +646,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo-test-ds
+ type: dataSource
+ attributes:
+ url: jdbc:postgresql://localhost:5432/demo
username: demouser
enableCaching: false
name: demo-test-ds
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
schema: demo
- id: demo-test-ds
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources?page=0&size=500
next: http://localhost:3000/api/v1/entities/dataSources?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml
index 213acdd46..fbe61e11a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: 40ab97b95a16dec9
+ traceId: d1e7b6b3032bee35
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/dataSources
@@ -103,7 +103,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -113,6 +113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '277'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -138,36 +140,34 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: dataSource
attributes:
+ url: jdbc:vertica://localhost:5433/demoparam=value
username: demouser
enableCaching: false
name: Test2
type: VERTICA
- url: jdbc:vertica://localhost:5433/demoparam=value
schema: demo
- id: test
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources/test
- request:
@@ -182,7 +182,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -204,6 +204,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -215,21 +217,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml
index ca0c6361a..b7ff8762c 100644
--- a/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml
@@ -13,7 +13,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -23,6 +23,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -49,24 +51,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -81,7 +81,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -91,6 +91,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -116,32 +118,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml
index d7f52eaf3..c5f9c6108 100644
--- a/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml
@@ -13,7 +13,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -23,6 +23,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -49,24 +51,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -81,7 +81,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -91,6 +91,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -116,33 +118,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -157,7 +157,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -167,6 +167,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -192,24 +194,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -224,7 +224,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -234,6 +234,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -259,33 +261,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -298,7 +298,7 @@ interactions:
attributes:
name: test_organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
headers:
Accept:
- application/vnd.gooddata.api+json
@@ -311,7 +311,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -321,6 +321,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '252'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -346,33 +348,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: test_organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -387,7 +387,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -397,6 +397,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -422,24 +424,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -454,7 +454,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -464,6 +464,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '252'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -489,33 +491,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: test_organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -530,7 +530,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -540,6 +540,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -565,24 +567,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -597,7 +597,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -607,6 +607,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '252'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -632,33 +634,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: test_organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -671,7 +671,7 @@ interactions:
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
headers:
Accept:
- application/vnd.gooddata.api+json
@@ -684,7 +684,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -694,6 +694,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -719,33 +721,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -760,7 +760,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -770,6 +770,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -795,24 +797,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -827,7 +827,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -837,6 +837,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -862,32 +864,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/update_oidc_settings.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/update_oidc_settings.yaml
index 4b43bc4ce..304f63a54 100644
--- a/gooddata-sdk/tests/catalog/fixtures/organization/update_oidc_settings.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/organization/update_oidc_settings.yaml
@@ -13,7 +13,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -23,6 +23,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -49,24 +51,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -81,7 +81,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -91,6 +91,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -116,33 +118,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -157,7 +157,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -167,6 +167,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -192,24 +194,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -224,7 +224,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -234,6 +234,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -259,33 +261,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: bf4fb720-620c-48e4-b2a8-058cc58d335b
- id: default
- type: organization
+ oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -313,7 +313,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -323,6 +323,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '258'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -348,34 +350,32 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
oauthIssuerLocation: test.com
oauthClientId: '123456'
- id: default
- type: organization
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -390,7 +390,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -400,6 +400,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -425,24 +427,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -457,7 +457,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -467,6 +467,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '258'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -492,34 +494,32 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
oauthIssuerLocation: test.com
oauthClientId: '123456'
- id: default
- type: organization
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -534,7 +534,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -544,6 +544,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -569,24 +571,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -601,7 +601,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -611,6 +611,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '258'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -636,34 +638,32 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
oauthIssuerLocation: test.com
oauthClientId: '123456'
- id: default
- type: organization
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -688,7 +688,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -698,6 +698,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -723,33 +725,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -764,7 +764,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -774,6 +774,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -799,24 +801,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -831,7 +831,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -841,6 +841,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -866,32 +868,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml b/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml
index 030ad6caf..350bf6e3a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '292'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,44 +53,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- hierarchyPermissions:
- - assignee:
+ permissions:
+ - name: ANALYZE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: VIEW
+ assignee:
id: demoGroup
type: userGroup
- name: ANALYZE
- permissions:
- - assignee:
+ hierarchyPermissions:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: ANALYZE
- - assignee:
+ - name: ANALYZE
+ assignee:
id: demoGroup
type: userGroup
- name: VIEW
- request:
method: GET
uri: http://localhost:3000/api/v1/layout/workspaces/demo/permissions
@@ -103,7 +103,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -113,6 +113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '292'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -138,41 +140,39 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- hierarchyPermissions:
- - assignee:
+ permissions:
+ - name: ANALYZE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: VIEW
+ assignee:
id: demoGroup
type: userGroup
- name: ANALYZE
- permissions:
- - assignee:
+ hierarchyPermissions:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: ANALYZE
- - assignee:
+ - name: ANALYZE
+ assignee:
id: demoGroup
type: userGroup
- name: VIEW
diff --git a/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml b/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml
index b6b419608..56c79b830 100644
--- a/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '44'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,28 +53,26 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- hierarchyPermissions: []
permissions: []
+ hierarchyPermissions: []
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaces/demo_west/permissions
@@ -105,7 +105,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -127,6 +127,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -138,22 +140,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -170,7 +172,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -180,6 +182,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '292'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -205,44 +209,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- hierarchyPermissions:
- - assignee:
+ permissions:
+ - name: ANALYZE
+ assignee:
id: demo2
type: user
- name: MANAGE
- - assignee:
+ - name: VIEW
+ assignee:
id: demoGroup
type: userGroup
- name: ANALYZE
- permissions:
- - assignee:
+ hierarchyPermissions:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: ANALYZE
- - assignee:
+ - name: ANALYZE
+ assignee:
id: demoGroup
type: userGroup
- name: VIEW
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaces/demo_west/permissions
@@ -259,7 +261,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -281,6 +283,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -292,22 +296,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -324,7 +328,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -334,6 +338,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '44'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -359,25 +365,23 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- hierarchyPermissions: []
permissions: []
+ hierarchyPermissions: []
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml b/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml
index 7cac37aeb..2fb04c0ed 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,70 +53,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
- links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
links:
- self: http://localhost:3000/api/v1/entities/users/demo2
+ self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- - id: demoGroup
+ - id: adminGroup
type: userGroup
- type: user
- - attributes: {}
- id: admin
links:
- self: http://localhost:3000/api/v1/entities/users/admin
+ self: http://localhost:3000/api/v1/entities/users/demo
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- - id: adminGroup
+ - id: demoGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo2
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
@@ -132,7 +132,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -142,6 +142,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -167,31 +169,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: 1eacde48b3164b17
+ traceId: ab57f14bb2b599d3
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/users
@@ -218,7 +218,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -228,6 +228,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '162'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -253,31 +255,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- authenticationId: newUser_auth_id
id: newUser
type: user
+ attributes:
+ authenticationId: newUser_auth_id
links:
self: http://localhost:3000/api/v1/entities/users/newUser
- request:
@@ -294,7 +294,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -304,6 +304,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '406'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -329,42 +331,40 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: newUser
+ type: user
attributes:
authenticationId: newUser_auth_id
- id: newUser
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
included:
- - attributes: {}
- id: demoGroup
+ - id: demoGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users/newUser?include=userGroups
- request:
@@ -381,7 +381,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -391,6 +391,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1453'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -416,81 +418,79 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
- links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
links:
- self: http://localhost:3000/api/v1/entities/users/demo2
+ self: http://localhost:3000/api/v1/entities/users/admin
+ - id: newUser
+ type: user
+ attributes:
+ authenticationId: newUser_auth_id
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
- - attributes: {}
- id: admin
links:
- self: http://localhost:3000/api/v1/entities/users/admin
+ self: http://localhost:3000/api/v1/entities/users/newUser
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: newUser_auth_id
- id: newUser
links:
- self: http://localhost:3000/api/v1/entities/users/newUser
+ self: http://localhost:3000/api/v1/entities/users/demo
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo2
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
@@ -506,7 +506,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -528,6 +528,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -539,22 +541,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -571,7 +573,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -581,6 +583,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -606,70 +610,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
- links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
links:
- self: http://localhost:3000/api/v1/entities/users/demo2
+ self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- - id: demoGroup
+ - id: adminGroup
type: userGroup
- type: user
- - attributes: {}
- id: admin
links:
- self: http://localhost:3000/api/v1/entities/users/admin
+ self: http://localhost:3000/api/v1/entities/users/demo
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- - id: adminGroup
+ - id: demoGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo2
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml b/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml
index 8dcd9bebc..f5fc3b737 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1186'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,68 +53,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: adminQA1Group
type: userGroup
- - attributes: {}
- id: adminQA1Group
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ attributes: {}
relationships:
parents:
data:
- id: adminGroup
type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
+ - id: visitorsGroup
type: userGroup
- - attributes: {}
- id: visitorsGroup
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
+ attributes: {}
relationships:
parents:
data:
- id: demoGroup
type: userGroup
- type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=1&size=500
@@ -130,7 +130,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -140,6 +140,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -165,31 +167,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: 937f6ea318dd8fa8
+ traceId: c71646e4441018eb
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/userGroups
@@ -214,7 +214,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -224,6 +224,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '146'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -249,30 +251,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes: {}
id: newUserGroup
type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/newUserGroup
- request:
@@ -289,7 +289,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -299,6 +299,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '380'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -324,41 +326,39 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes: {}
id: newUserGroup
+ type: userGroup
+ attributes: {}
relationships:
parents:
data:
- id: demoGroup
type: userGroup
- type: userGroup
included:
- - attributes: {}
- id: demoGroup
+ - id: demoGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/userGroups/newUserGroup?include=ALL
- request:
@@ -375,7 +375,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -385,6 +385,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1401'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -410,78 +412,76 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: adminQA1Group
type: userGroup
- - attributes: {}
- id: newUserGroup
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/newUserGroup
+ attributes: {}
relationships:
parents:
data:
- - id: demoGroup
+ - id: adminGroup
type: userGroup
- type: userGroup
- - attributes: {}
- id: adminQA1Group
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
- relationships:
- parents:
- data:
- - id: adminGroup
- type: userGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
+ - id: visitorsGroup
type: userGroup
- - attributes: {}
- id: visitorsGroup
+ attributes: {}
+ relationships:
+ parents:
+ data:
+ - id: demoGroup
+ type: userGroup
links:
self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
+ - id: newUserGroup
+ type: userGroup
+ attributes: {}
relationships:
parents:
data:
- id: demoGroup
type: userGroup
- type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/newUserGroup
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=1&size=500
@@ -497,7 +497,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -519,6 +519,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -530,22 +532,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -562,7 +564,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -572,6 +574,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1186'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -597,68 +601,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: adminQA1Group
type: userGroup
- - attributes: {}
- id: adminQA1Group
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ attributes: {}
relationships:
parents:
data:
- id: adminGroup
type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
+ - id: visitorsGroup
type: userGroup
- - attributes: {}
- id: visitorsGroup
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
+ attributes: {}
relationships:
parents:
data:
- id: demoGroup
type: userGroup
- type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_user_groups.yaml
index 3fc5659d5..626c9cb8d 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_user_groups.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_user_groups.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '202'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,24 +53,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
userGroups:
@@ -96,7 +96,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -106,6 +106,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '202'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -131,24 +133,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
userGroups:
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml
index d513d2152..5d3479148 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,44 +53,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
- request:
method: GET
uri: http://localhost:3000/api/v1/layout/users
@@ -103,7 +103,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -113,6 +113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -138,41 +140,39 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml
index 0155e7844..571620650 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,55 +53,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- userGroups:
- - id: adminGroup
- - id: adminQA1Group
- parents:
- - id: adminGroup
- type: userGroup
- - id: demoGroup
- - id: visitorsGroup
- parents:
- - id: demoGroup
- type: userGroup
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
+ userGroups:
+ - id: adminGroup
+ - id: adminQA1Group
+ parents:
+ - id: adminGroup
+ type: userGroup
+ - id: demoGroup
+ - id: visitorsGroup
+ parents:
+ - id: demoGroup
+ type: userGroup
- request:
method: GET
uri: http://localhost:3000/api/v1/layout/usersAndUserGroups
@@ -114,7 +114,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -124,6 +124,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -149,52 +151,50 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- userGroups:
- - id: adminGroup
- - id: adminQA1Group
- parents:
- - id: adminGroup
- type: userGroup
- - id: demoGroup
- - id: visitorsGroup
- parents:
- - id: demoGroup
- type: userGroup
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
+ userGroups:
+ - id: adminGroup
+ - id: adminQA1Group
+ parents:
+ - id: adminGroup
+ type: userGroup
+ - id: demoGroup
+ - id: visitorsGroup
+ parents:
+ - id: demoGroup
+ type: userGroup
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml b/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml
index a726ac769..1e59a7488 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '447'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,41 +53,39 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
included:
- - attributes: {}
- id: demoGroup
+ - id: demoGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users/demo2?include=userGroups
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/get_user_group.yaml b/gooddata-sdk/tests/catalog/fixtures/users/get_user_group.yaml
index ebb8dd078..8b1006f3a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/get_user_group.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/get_user_group.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '152'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,29 +53,27 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes: {}
id: demoGroup
type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup?include=ALL
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/list_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/list_user_groups.yaml
index 65ce077d8..64a50be3f 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/list_user_groups.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/list_user_groups.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1186'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,68 +53,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: adminQA1Group
type: userGroup
- - attributes: {}
- id: adminQA1Group
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ attributes: {}
relationships:
parents:
data:
- id: adminGroup
type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
+ - id: visitorsGroup
type: userGroup
- - attributes: {}
- id: visitorsGroup
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
+ attributes: {}
relationships:
parents:
data:
- id: demoGroup
type: userGroup
- type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml
index 8cb103b15..29e66540a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,70 +53,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
- links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
links:
- self: http://localhost:3000/api/v1/entities/users/demo2
+ self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- - id: demoGroup
+ - id: adminGroup
type: userGroup
- type: user
- - attributes: {}
- id: admin
links:
- self: http://localhost:3000/api/v1/entities/users/admin
+ self: http://localhost:3000/api/v1/entities/users/demo
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- - id: adminGroup
+ - id: demoGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo2
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml
index 22266bcc1..7dc4d03a7 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,44 +53,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
- request:
method: GET
uri: http://localhost:3000/api/v1/layout/userGroups
@@ -103,7 +103,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -113,6 +113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '202'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -138,24 +140,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
userGroups:
@@ -183,7 +183,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -193,6 +193,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -218,70 +220,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
- links:
- self: http://localhost:3000/api/v1/entities/users/demo2
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
- - attributes: {}
- id: admin
links:
- self: http://localhost:3000/api/v1/entities/users/admin
+ self: http://localhost:3000/api/v1/entities/users/demo2
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
@@ -297,7 +297,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -319,6 +319,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -330,22 +332,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -364,7 +366,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -386,6 +388,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -397,22 +401,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -427,7 +431,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -437,6 +441,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -462,24 +468,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -494,7 +498,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -504,6 +508,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -529,33 +535,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -583,7 +587,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -605,6 +609,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -616,22 +622,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -648,7 +654,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -658,6 +664,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '202'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -683,24 +691,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
userGroups:
@@ -739,7 +745,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -761,6 +767,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -772,22 +780,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -801,13 +809,13 @@ interactions:
type: userGroup
settings: []
- id: demo
- authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
settings: []
- id: demo2
- authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
@@ -822,7 +830,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -844,6 +852,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -855,21 +865,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml
index 7d40518bf..165466b69 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,44 +53,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
@@ -103,7 +103,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -113,6 +113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -138,70 +140,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes: {}
- id: admin
- links:
- self: http://localhost:3000/api/v1/entities/users/admin
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
links:
- self: http://localhost:3000/api/v1/entities/users/demo2
+ self: http://localhost:3000/api/v1/entities/users/demo
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo2
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
@@ -217,7 +217,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -239,6 +239,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -250,22 +252,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -280,7 +282,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -290,6 +292,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -315,24 +319,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -347,7 +349,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -357,6 +359,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -382,33 +386,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -443,7 +445,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -465,6 +467,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -476,22 +480,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -508,7 +512,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -518,6 +522,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -543,44 +549,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/users
@@ -592,13 +596,13 @@ interactions:
type: userGroup
settings: []
- id: demo
- authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
settings: []
- id: demo2
- authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
@@ -613,7 +617,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -635,6 +639,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -646,21 +652,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml
index 60d83e912..0dfaa3fd7 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,55 +53,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- userGroups:
- - id: adminGroup
- - id: adminQA1Group
- parents:
- - id: adminGroup
- type: userGroup
- - id: demoGroup
- - id: visitorsGroup
- parents:
- - id: demoGroup
- type: userGroup
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
+ userGroups:
+ - id: adminGroup
+ - id: adminQA1Group
+ parents:
+ - id: adminGroup
+ type: userGroup
+ - id: demoGroup
+ - id: visitorsGroup
+ parents:
+ - id: demoGroup
+ type: userGroup
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
@@ -114,7 +114,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -124,6 +124,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -149,70 +151,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes: {}
- id: admin
- links:
- self: http://localhost:3000/api/v1/entities/users/admin
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
links:
- self: http://localhost:3000/api/v1/entities/users/demo2
+ self: http://localhost:3000/api/v1/entities/users/demo
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo2
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
@@ -228,7 +228,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -250,6 +250,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -261,22 +263,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -295,7 +297,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -317,6 +319,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -328,22 +332,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -358,7 +362,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -368,6 +372,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -393,24 +399,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -425,7 +429,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -435,6 +439,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -460,33 +466,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -532,7 +536,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -554,6 +558,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -565,22 +571,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -597,7 +603,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -607,6 +613,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -632,55 +640,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- userGroups:
- - id: adminGroup
- - id: adminQA1Group
- parents:
- - id: adminGroup
- type: userGroup
- - id: demoGroup
- - id: visitorsGroup
- parents:
- - id: demoGroup
- type: userGroup
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
+ userGroups:
+ - id: adminGroup
+ - id: adminQA1Group
+ parents:
+ - id: adminGroup
+ type: userGroup
+ - id: demoGroup
+ - id: visitorsGroup
+ parents:
+ - id: demoGroup
+ type: userGroup
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/usersAndUserGroups
@@ -703,13 +709,13 @@ interactions:
type: userGroup
settings: []
- id: demo
- authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
settings: []
- id: demo2
- authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
@@ -724,7 +730,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -746,6 +752,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -757,21 +765,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml
index 3f51b65cc..3f1367a7a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '202'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,24 +53,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
userGroups:
@@ -96,7 +96,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -106,6 +106,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -131,44 +133,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
@@ -183,7 +183,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -193,6 +193,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -218,70 +220,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes: {}
- id: admin
- links:
- self: http://localhost:3000/api/v1/entities/users/admin
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
links:
- self: http://localhost:3000/api/v1/entities/users/demo2
+ self: http://localhost:3000/api/v1/entities/users/demo
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo2
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
@@ -297,7 +297,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -319,6 +319,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -330,22 +332,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -364,7 +366,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -386,6 +388,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -397,22 +401,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -440,7 +444,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -462,6 +466,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -473,22 +479,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -505,7 +511,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -515,6 +521,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '202'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -540,24 +548,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
userGroups:
@@ -596,7 +602,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -618,6 +624,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -629,22 +637,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -658,13 +666,13 @@ interactions:
type: userGroup
settings: []
- id: demo
- authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
settings: []
- id: demo2
- authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
@@ -679,7 +687,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -701,6 +709,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -712,21 +722,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml
index 3569867ba..4ac94703c 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,44 +53,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
@@ -103,7 +103,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -113,6 +113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -138,70 +140,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
- links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes: {}
- id: admin
links:
self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- - id: adminGroup
+ - id: demoGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
links:
self: http://localhost:3000/api/v1/entities/users/demo2
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- - id: demoGroup
+ - id: adminGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
@@ -217,7 +217,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -239,6 +239,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -250,22 +252,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -279,13 +281,13 @@ interactions:
type: userGroup
settings: []
- id: demo
- authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
settings: []
- id: demo2
- authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
@@ -300,7 +302,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -322,6 +324,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -333,22 +337,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -365,7 +369,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -375,6 +379,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -400,44 +406,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/users
@@ -449,13 +453,13 @@ interactions:
type: userGroup
settings: []
- id: demo
- authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
settings: []
- id: demo2
- authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
@@ -470,7 +474,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -492,6 +496,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -503,21 +509,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml
index 326debe87..dbb08e5c0 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,55 +53,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- userGroups:
- - id: adminGroup
- - id: adminQA1Group
- parents:
- - id: adminGroup
- type: userGroup
- - id: demoGroup
- - id: visitorsGroup
- parents:
- - id: demoGroup
- type: userGroup
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
+ userGroups:
+ - id: adminGroup
+ - id: adminQA1Group
+ parents:
+ - id: adminGroup
+ type: userGroup
+ - id: demoGroup
+ - id: visitorsGroup
+ parents:
+ - id: demoGroup
+ type: userGroup
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
@@ -114,7 +114,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -124,6 +124,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -149,70 +151,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
- links:
- self: http://localhost:3000/api/v1/entities/users/demo2
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
- - attributes: {}
- id: admin
links:
- self: http://localhost:3000/api/v1/entities/users/admin
+ self: http://localhost:3000/api/v1/entities/users/demo2
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
@@ -228,7 +228,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -250,6 +250,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -261,22 +263,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -295,7 +297,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -317,6 +319,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -328,22 +332,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -368,13 +372,13 @@ interactions:
type: userGroup
settings: []
- id: demo
- authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
settings: []
- id: demo2
- authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
@@ -389,7 +393,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -411,6 +415,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -422,22 +428,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -454,7 +460,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -464,6 +470,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -489,55 +497,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- userGroups:
- - id: adminGroup
- - id: adminQA1Group
- parents:
- - id: adminGroup
- type: userGroup
- - id: demoGroup
- - id: visitorsGroup
- parents:
- - id: demoGroup
- type: userGroup
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
+ userGroups:
+ - id: adminGroup
+ - id: adminQA1Group
+ parents:
+ - id: adminGroup
+ type: userGroup
+ - id: demoGroup
+ - id: visitorsGroup
+ parents:
+ - id: demoGroup
+ type: userGroup
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/usersAndUserGroups
@@ -560,13 +566,13 @@ interactions:
type: userGroup
settings: []
- id: demo
- authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
settings: []
- id: demo2
- authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
@@ -581,7 +587,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -603,6 +609,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -614,21 +622,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml
index 8e48e6a0c..a0ad20d9b 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '202'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,24 +53,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
userGroups:
@@ -96,7 +96,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -106,6 +106,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '202'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -131,24 +133,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
userGroups:
@@ -174,7 +174,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -184,6 +184,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -209,24 +211,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -241,7 +241,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -251,6 +251,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -276,33 +278,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -317,7 +317,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -327,6 +327,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -352,24 +354,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -384,7 +384,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -394,6 +394,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -419,32 +421,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml
index 609877c7f..5f49764b0 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,44 +53,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
- request:
method: GET
uri: http://localhost:3000/api/v1/layout/users
@@ -103,7 +103,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -113,6 +113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '402'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -138,44 +140,42 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -188,7 +188,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -198,6 +198,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -223,24 +225,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -255,7 +255,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -265,6 +265,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -290,33 +292,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -331,7 +331,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -341,6 +341,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -366,24 +368,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -398,7 +398,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -408,6 +408,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -433,32 +435,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml
index 21843fade..7d5f3581d 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,55 +53,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- userGroups:
- - id: adminGroup
- - id: adminQA1Group
- parents:
- - id: adminGroup
- type: userGroup
- - id: demoGroup
- - id: visitorsGroup
- parents:
- - id: demoGroup
- type: userGroup
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
+ userGroups:
+ - id: adminGroup
+ - id: adminQA1Group
+ parents:
+ - id: adminGroup
+ type: userGroup
+ - id: demoGroup
+ - id: visitorsGroup
+ parents:
+ - id: demoGroup
+ type: userGroup
- request:
method: GET
uri: http://localhost:3000/api/v1/layout/usersAndUserGroups
@@ -114,7 +114,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -124,6 +124,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -149,55 +151,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- userGroups:
- - id: adminGroup
- - id: adminQA1Group
- parents:
- - id: adminGroup
- type: userGroup
- - id: demoGroup
- - id: visitorsGroup
- parents:
- - id: demoGroup
- type: userGroup
users:
- id: admin
- settings: []
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
settings: []
+ - id: demo
+ authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
userGroups:
- id: adminGroup
type: userGroup
- - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
settings: []
+ - id: demo2
+ authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
userGroups:
- id: demoGroup
type: userGroup
+ settings: []
+ userGroups:
+ - id: adminGroup
+ - id: adminQA1Group
+ parents:
+ - id: adminGroup
+ type: userGroup
+ - id: demoGroup
+ - id: visitorsGroup
+ parents:
+ - id: demoGroup
+ type: userGroup
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -210,7 +210,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -220,6 +220,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -245,24 +247,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -277,7 +277,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -287,6 +287,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -312,33 +314,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -353,7 +353,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -363,6 +363,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -388,24 +390,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -420,7 +420,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -430,6 +430,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -455,32 +457,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml b/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml
index 9e7d0a33c..c372c22d0 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '447'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,42 +53,40 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
included:
- - attributes: {}
- id: demoGroup
+ - id: demoGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users/demo2?include=userGroups
- request:
@@ -103,7 +103,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -113,6 +113,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '447'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -138,42 +140,40 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- id: demoGroup
type: userGroup
- type: user
included:
- - attributes: {}
- id: demoGroup
+ - id: demoGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users/demo2?include=userGroups
- request:
@@ -204,7 +204,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -214,6 +214,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '152'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -239,31 +241,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- authenticationId: demo2_123
id: demo2
type: user
+ attributes:
+ authenticationId: demo2_123
links:
self: http://localhost:3000/api/v1/entities/users/demo2
- request:
@@ -280,7 +280,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -290,6 +290,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '578'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -315,30 +317,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: demo2
+ type: user
attributes:
authenticationId: demo2_123
- id: demo2
relationships:
userGroups:
data:
@@ -346,18 +347,17 @@ interactions:
type: userGroup
- id: demoGroup
type: userGroup
- type: user
included:
- - attributes: {}
- id: visitorsGroup
+ - id: visitorsGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users/demo2?include=userGroups
- request:
@@ -372,7 +372,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -394,6 +394,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -405,22 +407,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -437,7 +439,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -447,6 +449,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -472,31 +476,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: 5076f34e457c612c
+ traceId: b99f7227557b215a
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/users
@@ -505,7 +507,7 @@ interactions:
id: demo2
type: user
attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
@@ -523,7 +525,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -533,6 +535,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '203'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -558,31 +562,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
id: demo2
type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
links:
self: http://localhost:3000/api/v1/entities/users/demo2
- request:
@@ -599,7 +601,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -609,6 +611,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1219'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -634,70 +638,68 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
- authenticationId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs
- id: demo
- links:
- self: http://localhost:3000/api/v1/entities/users/demo
+ - id: admin
+ type: user
+ attributes: {}
relationships:
userGroups:
data:
- id: adminGroup
type: userGroup
- type: user
- - attributes: {}
- id: admin
links:
self: http://localhost:3000/api/v1/entities/users/admin
+ - id: demo2
+ type: user
+ attributes:
+ authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs
relationships:
userGroups:
data:
- - id: adminGroup
+ - id: demoGroup
type: userGroup
- type: user
- - attributes:
- authenticationId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs
- id: demo2
links:
self: http://localhost:3000/api/v1/entities/users/demo2
+ - id: demo
+ type: user
+ attributes:
+ authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs
relationships:
userGroups:
data:
- - id: demoGroup
+ - id: adminGroup
type: userGroup
- type: user
+ links:
+ self: http://localhost:3000/api/v1/entities/users/demo
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/users?include=userGroups&page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/users/update_user_group.yaml b/gooddata-sdk/tests/catalog/fixtures/users/update_user_group.yaml
index b5a235567..dbaa98aad 100644
--- a/gooddata-sdk/tests/catalog/fixtures/users/update_user_group.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/users/update_user_group.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '152'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,30 +53,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes: {}
id: demoGroup
type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup?include=ALL
- request:
@@ -91,7 +91,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -101,6 +101,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1186'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -126,68 +128,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: adminQA1Group
type: userGroup
- - attributes: {}
- id: adminQA1Group
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ attributes: {}
relationships:
parents:
data:
- id: adminGroup
type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
+ - id: visitorsGroup
type: userGroup
- - attributes: {}
- id: visitorsGroup
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
+ attributes: {}
relationships:
parents:
data:
- id: demoGroup
type: userGroup
- type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=1&size=500
@@ -205,7 +205,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -215,6 +215,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '152'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -240,30 +242,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes: {}
id: demoGroup
type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup?include=ALL
- request:
@@ -288,7 +288,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -298,6 +298,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '140'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -323,30 +325,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes: {}
id: demoGroup
type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- request:
@@ -363,7 +363,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -373,6 +373,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '152'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -398,30 +400,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes: {}
id: demoGroup
type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup?include=ALL
- request:
@@ -438,7 +438,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -448,6 +448,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '152'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -473,30 +475,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes: {}
id: demoGroup
type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup?include=ALL
- request:
@@ -521,7 +521,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -531,6 +531,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '140'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -556,30 +558,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes: {}
id: demoGroup
type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- request:
@@ -596,7 +596,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -606,6 +606,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1186'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -631,68 +633,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: adminQA1Group
type: userGroup
- - attributes: {}
- id: adminQA1Group
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ attributes: {}
relationships:
parents:
data:
- id: adminGroup
type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/adminQA1Group
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
+ - id: visitorsGroup
type: userGroup
- - attributes: {}
- id: visitorsGroup
- links:
- self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
+ attributes: {}
relationships:
parents:
data:
- id: demoGroup
type: userGroup
- type: userGroup
+ links:
+ self: http://localhost:3000/api/v1/entities/userGroups/visitorsGroup
included:
- - attributes: {}
- id: adminGroup
+ - id: adminGroup
+ type: userGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/adminGroup
+ - id: demoGroup
type: userGroup
- - attributes: {}
- id: demoGroup
+ attributes: {}
links:
self: http://localhost:3000/api/v1/entities/userGroups/demoGroup
- type: userGroup
links:
self: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=0&size=500
next: http://localhost:3000/api/v1/entities/userGroups?include=userGroups&page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml
index a7a1f2c08..185f6c168 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,533 +53,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -585,11 +587,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -597,11 +599,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -609,55 +611,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -665,33 +667,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -699,11 +701,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -711,11 +713,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -723,11 +725,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -735,11 +737,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -747,55 +749,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -803,22 +805,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -826,33 +828,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -860,11 +862,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -872,22 +874,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -895,11 +897,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -907,10 +909,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -928,7 +928,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -938,6 +938,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -963,28 +965,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1002,9 +1004,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1020,8 +1019,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1037,11 +1039,11 @@ interactions:
sourceColumns:
- product_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
id: customers
type: dataset
@@ -1049,17 +1051,14 @@ interactions:
sourceColumns:
- customer_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1075,52 +1074,81 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: customers
+ type: dataset
+ attributes:
+ title: Customers
+ description: Customers
+ tags:
+ - Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ dataSourceTableId: demo-test-ds:customers
+ areRelationsValid: true
+ type: NORMAL
+ relationships:
+ attributes:
+ data:
+ - id: region
+ type: attribute
+ - id: state
+ type: attribute
+ - id: customer_id
+ type: attribute
+ - id: customer_name
+ type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: date
type: dataset
- - attributes:
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
- id: date.dayOfYear
type: attribute
- - id: date.dayOfMonth
+ - id: date.month
type: attribute
- id: date.day
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.dayOfMonth
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minute
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.minuteOfHour
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- - id: date.hour
+ - id: date.dayOfWeek
type: attribute
- - id: date.month
+ - id: date.hour
type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1131,9 +1159,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1143,34 +1168,11 @@ interactions:
type: attribute
- id: products.category
type: attribute
- type: dataset
- - attributes:
- title: Customers
- description: Customers
- tags:
- - Customers
- grain:
- - id: customer_id
- type: attribute
- dataSourceTableId: demo-test-ds:customers
- areRelationsValid: true
- type: NORMAL
- id: customers
links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
- relationships:
- attributes:
- data:
- - id: region
- type: attribute
- - id: state
- type: attribute
- - id: customer_id
- type: attribute
- - id: customer_name
- type: attribute
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1181,9 +1183,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1191,348 +1190,349 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1550,7 +1550,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1560,6 +1560,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1585,59 +1587,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1645,107 +1647,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1753,114 +1755,112 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml
index 6c2cf53c0..d02eb9c3e 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '19407'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,533 +53,533 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
relationships:
labels:
data:
- id: campaign_channel_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
relationships:
labels:
data:
- id: campaign_channels.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
relationships:
labels:
data:
- id: type
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
relationships:
labels:
data:
- id: campaign_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
relationships:
labels:
data:
- id: campaign_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
relationships:
labels:
data:
- id: customer_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
relationships:
labels:
data:
- id: customer_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
relationships:
labels:
data:
- id: region
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
relationships:
labels:
data:
- - id: geo__state__location
- type: label
- id: state
type: label
+ - id: geo__state__location
+ type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
relationships:
labels:
data:
- id: order_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
relationships:
labels:
data:
- id: order_line_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
relationships:
labels:
data:
- id: order_status
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
relationships:
labels:
data:
- id: product_id
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
relationships:
labels:
data:
- id: product_name
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
relationships:
labels:
data:
- id: products.category
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
relationships:
labels:
data:
- id: date.minute
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
relationships:
labels:
data:
- id: date.hour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
relationships:
labels:
data:
- id: date.day
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
relationships:
labels:
data:
- id: date.week
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
relationships:
labels:
data:
- id: date.month
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
relationships:
labels:
data:
- id: date.quarter
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
relationships:
labels:
data:
- id: date.year
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
relationships:
labels:
data:
- id: date.minuteOfHour
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
relationships:
labels:
data:
- id: date.hourOfDay
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
relationships:
labels:
data:
- id: date.dayOfWeek
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
relationships:
labels:
data:
- id: date.dayOfMonth
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
relationships:
labels:
data:
- id: date.dayOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
relationships:
labels:
data:
- id: date.weekOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
relationships:
labels:
data:
- id: date.monthOfYear
type: label
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
relationships:
labels:
data:
- id: date.quarterOfYear
type: label
- type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
included:
- - attributes:
+ - id: date.minuteOfHour
+ type: label
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
primary: true
sourceColumn: ''
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -585,11 +587,11 @@ interactions:
primary: true
sourceColumn: product_name
valueType: TEXT
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -597,11 +599,11 @@ interactions:
primary: true
sourceColumn: order_status
valueType: TEXT
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -609,55 +611,55 @@ interactions:
primary: true
sourceColumn: campaign_name
valueType: TEXT
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: campaign_channel_id
type: label
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -665,33 +667,33 @@ interactions:
primary: true
sourceColumn: campaign_channel_id
valueType: TEXT
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
primary: true
sourceColumn: ''
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -699,11 +701,11 @@ interactions:
primary: true
sourceColumn: order_id
valueType: TEXT
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -711,11 +713,11 @@ interactions:
primary: true
sourceColumn: customer_name
valueType: TEXT
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -723,11 +725,11 @@ interactions:
primary: true
sourceColumn: type
valueType: TEXT
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -735,11 +737,11 @@ interactions:
primary: true
sourceColumn: region
valueType: TEXT
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -747,55 +749,55 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
- Customers
primary: false
sourceColumn: geo__state__location
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -803,22 +805,22 @@ interactions:
primary: true
sourceColumn: product_id
valueType: TEXT
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -826,33 +828,33 @@ interactions:
primary: true
sourceColumn: order_line_id
valueType: TEXT
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
primary: true
sourceColumn: ''
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
primary: true
sourceColumn: ''
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -860,11 +862,11 @@ interactions:
primary: true
sourceColumn: category
valueType: TEXT
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -872,22 +874,22 @@ interactions:
primary: true
sourceColumn: customer_id
valueType: TEXT
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
primary: true
sourceColumn: ''
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -895,11 +897,11 @@ interactions:
primary: true
sourceColumn: state
valueType: TEXT
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -907,10 +909,8 @@ interactions:
primary: true
sourceColumn: campaign_id
valueType: TEXT
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500
@@ -928,7 +928,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -938,6 +938,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '13076'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -963,28 +965,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channels
+ type: dataset
+ attributes:
title: Campaign channels
description: Campaign channels
tags:
@@ -1002,9 +1004,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaign_channels
areRelationsValid: true
type: NORMAL
- id: campaign_channels
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
relationships:
attributes:
data:
@@ -1020,8 +1019,11 @@ interactions:
type: fact
- id: budget
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels
+ - id: order_lines
type: dataset
- - attributes:
+ attributes:
title: Order lines
description: Order lines
tags:
@@ -1037,11 +1039,11 @@ interactions:
sourceColumns:
- product_id
- identifier:
- id: campaigns
+ id: date
type: dataset
multivalue: false
sourceColumns:
- - campaign_id
+ - date
- identifier:
id: customers
type: dataset
@@ -1049,17 +1051,14 @@ interactions:
sourceColumns:
- customer_id
- identifier:
- id: date
+ id: campaigns
type: dataset
multivalue: false
sourceColumns:
- - date
+ - campaign_id
dataSourceTableId: demo-test-ds:order_lines
areRelationsValid: true
type: NORMAL
- id: order_lines
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
relationships:
attributes:
data:
@@ -1075,52 +1074,81 @@ interactions:
type: fact
- id: price
type: fact
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines
+ - id: customers
type: dataset
- - attributes:
+ attributes:
+ title: Customers
+ description: Customers
+ tags:
+ - Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ dataSourceTableId: demo-test-ds:customers
+ areRelationsValid: true
+ type: NORMAL
+ relationships:
+ attributes:
+ data:
+ - id: region
+ type: attribute
+ - id: state
+ type: attribute
+ - id: customer_id
+ type: attribute
+ - id: customer_name
+ type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
+ - id: date
+ type: dataset
+ attributes:
title: Date
description: ''
tags:
- Date
areRelationsValid: true
type: DATE
- id: date
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
relationships:
attributes:
data:
- - id: date.monthOfYear
+ - id: date.hourOfDay
type: attribute
- id: date.week
type: attribute
+ - id: date.year
+ type: attribute
- id: date.dayOfYear
type: attribute
- - id: date.dayOfMonth
+ - id: date.month
type: attribute
- id: date.day
type: attribute
- - id: date.dayOfWeek
- type: attribute
- - id: date.minuteOfHour
+ - id: date.dayOfMonth
type: attribute
- id: date.quarter
type: attribute
- - id: date.hourOfDay
+ - id: date.minute
type: attribute
- - id: date.weekOfYear
+ - id: date.quarterOfYear
type: attribute
- - id: date.minute
+ - id: date.minuteOfHour
type: attribute
- - id: date.year
+ - id: date.weekOfYear
type: attribute
- - id: date.hour
+ - id: date.dayOfWeek
type: attribute
- - id: date.month
+ - id: date.hour
type: attribute
- - id: date.quarterOfYear
+ - id: date.monthOfYear
type: attribute
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date
+ - id: products
type: dataset
- - attributes:
+ attributes:
title: Products
description: Products
tags:
@@ -1131,9 +1159,6 @@ interactions:
dataSourceTableId: demo-test-ds:products
areRelationsValid: true
type: NORMAL
- id: products
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
relationships:
attributes:
data:
@@ -1143,34 +1168,11 @@ interactions:
type: attribute
- id: products.category
type: attribute
- type: dataset
- - attributes:
- title: Customers
- description: Customers
- tags:
- - Customers
- grain:
- - id: customer_id
- type: attribute
- dataSourceTableId: demo-test-ds:customers
- areRelationsValid: true
- type: NORMAL
- id: customers
links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers
- relationships:
- attributes:
- data:
- - id: region
- type: attribute
- - id: state
- type: attribute
- - id: customer_id
- type: attribute
- - id: customer_name
- type: attribute
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products
+ - id: campaigns
type: dataset
- - attributes:
+ attributes:
title: Campaigns
description: Campaigns
tags:
@@ -1181,9 +1183,6 @@ interactions:
dataSourceTableId: demo-test-ds:campaigns
areRelationsValid: true
type: NORMAL
- id: campaigns
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
relationships:
attributes:
data:
@@ -1191,348 +1190,349 @@ interactions:
type: attribute
- id: campaign_id
type: attribute
- type: dataset
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns
included:
- - attributes:
+ - id: product_id
+ type: attribute
+ attributes:
title: Product id
description: Product id
tags:
- Products
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
- type: attribute
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
- type: fact
- - attributes:
+ - id: date.year
+ type: attribute
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
- type: attribute
- - attributes:
+ - id: price
+ type: fact
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
- type: fact
- - attributes:
+ - id: date.dayOfWeek
+ type: attribute
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: campaign_channel_id
type: attribute
- - attributes:
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
- type: attribute
- - attributes:
+ - id: quantity
+ type: fact
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
- - attributes:
+ - id: campaign_id
+ type: attribute
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
- type: attribute
- - attributes:
+ - id: spend
+ type: fact
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
- type: fact
- - attributes:
+ - id: date.dayOfYear
+ type: attribute
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes,facts&page=1&size=500
@@ -1550,7 +1550,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1560,6 +1560,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1585,59 +1587,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -1645,107 +1647,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -1753,114 +1755,112 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_attributes.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_attributes.yaml
index ac20a7ab9..3d25d9f0e 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_attributes.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_attributes.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8675'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,357 +53,355 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: campaign_channel_id
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id
+ - id: campaign_channels.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: category
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category
+ - id: type
type: attribute
- - attributes:
+ attributes:
title: Type
description: Type
tags:
- Campaign channels
areRelationsValid: true
sourceColumn: type
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type
+ - id: campaign_id
type: attribute
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_id
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id
+ - id: campaign_name
type: attribute
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
- Campaigns
areRelationsValid: true
sourceColumn: campaign_name
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name
+ - id: customer_id
type: attribute
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_id
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id
+ - id: customer_name
type: attribute
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
- Customers
areRelationsValid: true
sourceColumn: customer_name
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name
+ - id: region
type: attribute
- - attributes:
+ attributes:
title: Region
description: Region
tags:
- Customers
areRelationsValid: true
sourceColumn: region
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region
+ - id: state
type: attribute
- - attributes:
+ attributes:
title: State
description: State
tags:
- Customers
areRelationsValid: true
sourceColumn: state
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state
+ - id: order_id
type: attribute
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_id
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id
+ - id: order_line_id
type: attribute
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_line_id
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id
+ - id: order_status
type: attribute
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
- Order lines
areRelationsValid: true
sourceColumn: order_status
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status
+ - id: product_id
type: attribute
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
- Products
areRelationsValid: true
sourceColumn: product_id
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id
+ - id: product_name
type: attribute
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
- Products
areRelationsValid: true
sourceColumn: product_name
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name
+ - id: products.category
type: attribute
- - attributes:
+ attributes:
title: Category
description: Category
tags:
- Products
areRelationsValid: true
sourceColumn: category
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category
+ - id: date.minute
type: attribute
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
- Date
granularity: MINUTE
areRelationsValid: true
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minute
+ - id: date.hour
type: attribute
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
- Date
granularity: HOUR
areRelationsValid: true
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hour
+ - id: date.day
type: attribute
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
- Date
granularity: DAY
areRelationsValid: true
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day
+ - id: date.week
type: attribute
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
- Date
granularity: WEEK
areRelationsValid: true
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week
+ - id: date.month
type: attribute
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
- Date
granularity: MONTH
areRelationsValid: true
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month
+ - id: date.quarter
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
- Date
granularity: QUARTER
areRelationsValid: true
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter
+ - id: date.year
type: attribute
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
- Date
granularity: YEAR
areRelationsValid: true
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year
+ - id: date.minuteOfHour
type: attribute
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
- Date
granularity: MINUTE_OF_HOUR
areRelationsValid: true
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.minuteOfHour
+ - id: date.hourOfDay
type: attribute
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
- Date
granularity: HOUR_OF_DAY
areRelationsValid: true
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.hourOfDay
+ - id: date.dayOfWeek
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
- Date
granularity: DAY_OF_WEEK
areRelationsValid: true
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfWeek
+ - id: date.dayOfMonth
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
- Date
granularity: DAY_OF_MONTH
areRelationsValid: true
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfMonth
+ - id: date.dayOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
- Date
granularity: DAY_OF_YEAR
areRelationsValid: true
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.dayOfYear
+ - id: date.weekOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
- Date
granularity: WEEK_OF_YEAR
areRelationsValid: true
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.weekOfYear
+ - id: date.monthOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
- Date
granularity: MONTH_OF_YEAR
areRelationsValid: true
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.monthOfYear
+ - id: date.quarterOfYear
type: attribute
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
- Date
granularity: QUARTER_OF_YEAR
areRelationsValid: true
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarterOfYear
- type: attribute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_facts.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_facts.yaml
index 0d50d2137..64b5c8dc7 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_facts.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_facts.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1174'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,71 +53,69 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: budget
+ type: fact
+ attributes:
title: Budget
description: Budget
tags:
- Campaign channels
sourceColumn: budget
areRelationsValid: true
- id: budget
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget
+ - id: spend
type: fact
- - attributes:
+ attributes:
title: Spend
description: Spend
tags:
- Campaign channels
sourceColumn: spend
areRelationsValid: true
- id: spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend
+ - id: price
type: fact
- - attributes:
+ attributes:
title: Price
description: Price
tags:
- Order lines
sourceColumn: price
areRelationsValid: true
- id: price
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price
+ - id: quantity
type: fact
- - attributes:
+ attributes:
title: Quantity
description: Quantity
tags:
- Order lines
sourceColumn: quantity
areRelationsValid: true
- id: quantity
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity
- type: fact
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/facts?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/facts?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_labels.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_labels.yaml
index 0df01fa6d..b731fd8bd 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_labels.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_labels.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '9350'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,28 +53,28 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: campaign_channel_id
+ type: label
+ attributes:
title: Campaign channel id
description: Campaign channel id
tags:
@@ -81,11 +83,11 @@ interactions:
sourceColumn: campaign_channel_id
valueType: TEXT
areRelationsValid: true
- id: campaign_channel_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id
+ - id: campaign_channels.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -94,11 +96,11 @@ interactions:
sourceColumn: category
valueType: TEXT
areRelationsValid: true
- id: campaign_channels.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category
+ - id: type
type: label
- - attributes:
+ attributes:
title: Type
description: Type
tags:
@@ -107,11 +109,11 @@ interactions:
sourceColumn: type
valueType: TEXT
areRelationsValid: true
- id: type
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type
+ - id: campaign_id
type: label
- - attributes:
+ attributes:
title: Campaign id
description: Campaign id
tags:
@@ -120,11 +122,11 @@ interactions:
sourceColumn: campaign_id
valueType: TEXT
areRelationsValid: true
- id: campaign_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id
+ - id: campaign_name
type: label
- - attributes:
+ attributes:
title: Campaign name
description: Campaign name
tags:
@@ -133,11 +135,11 @@ interactions:
sourceColumn: campaign_name
valueType: TEXT
areRelationsValid: true
- id: campaign_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name
+ - id: customer_id
type: label
- - attributes:
+ attributes:
title: Customer id
description: Customer id
tags:
@@ -146,11 +148,11 @@ interactions:
sourceColumn: customer_id
valueType: TEXT
areRelationsValid: true
- id: customer_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id
+ - id: customer_name
type: label
- - attributes:
+ attributes:
title: Customer name
description: Customer name
tags:
@@ -159,11 +161,11 @@ interactions:
sourceColumn: customer_name
valueType: TEXT
areRelationsValid: true
- id: customer_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name
+ - id: region
type: label
- - attributes:
+ attributes:
title: Region
description: Region
tags:
@@ -172,11 +174,11 @@ interactions:
sourceColumn: region
valueType: TEXT
areRelationsValid: true
- id: region
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region
+ - id: state
type: label
- - attributes:
+ attributes:
title: State
description: State
tags:
@@ -185,11 +187,11 @@ interactions:
sourceColumn: state
valueType: TEXT
areRelationsValid: true
- id: state
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state
+ - id: geo__state__location
type: label
- - attributes:
+ attributes:
title: Location
description: Location
tags:
@@ -197,11 +199,11 @@ interactions:
primary: false
sourceColumn: geo__state__location
areRelationsValid: true
- id: geo__state__location
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location
+ - id: order_id
type: label
- - attributes:
+ attributes:
title: Order id
description: Order id
tags:
@@ -210,11 +212,11 @@ interactions:
sourceColumn: order_id
valueType: TEXT
areRelationsValid: true
- id: order_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id
+ - id: order_line_id
type: label
- - attributes:
+ attributes:
title: Order line id
description: Order line id
tags:
@@ -223,11 +225,11 @@ interactions:
sourceColumn: order_line_id
valueType: TEXT
areRelationsValid: true
- id: order_line_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id
+ - id: order_status
type: label
- - attributes:
+ attributes:
title: Order status
description: Order status
tags:
@@ -236,11 +238,11 @@ interactions:
sourceColumn: order_status
valueType: TEXT
areRelationsValid: true
- id: order_status
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status
+ - id: product_id
type: label
- - attributes:
+ attributes:
title: Product id
description: Product id
tags:
@@ -249,11 +251,11 @@ interactions:
sourceColumn: product_id
valueType: TEXT
areRelationsValid: true
- id: product_id
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id
+ - id: product_name
type: label
- - attributes:
+ attributes:
title: Product name
description: Product name
tags:
@@ -262,11 +264,11 @@ interactions:
sourceColumn: product_name
valueType: TEXT
areRelationsValid: true
- id: product_name
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name
+ - id: products.category
type: label
- - attributes:
+ attributes:
title: Category
description: Category
tags:
@@ -275,11 +277,11 @@ interactions:
sourceColumn: category
valueType: TEXT
areRelationsValid: true
- id: products.category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category
+ - id: date.minute
type: label
- - attributes:
+ attributes:
title: Date - Minute
description: Minute
tags:
@@ -287,11 +289,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.minute
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minute
+ - id: date.hour
type: label
- - attributes:
+ attributes:
title: Date - Hour
description: Hour
tags:
@@ -299,11 +301,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.hour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hour
+ - id: date.day
type: label
- - attributes:
+ attributes:
title: Date - Date
description: Date
tags:
@@ -311,11 +313,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.day
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day
+ - id: date.week
type: label
- - attributes:
+ attributes:
title: Date - Week/Year
description: Week and Year (W52/2020)
tags:
@@ -323,11 +325,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.week
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week
+ - id: date.month
type: label
- - attributes:
+ attributes:
title: Date - Month/Year
description: Month and Year (12/2020)
tags:
@@ -335,11 +337,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.month
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month
+ - id: date.quarter
type: label
- - attributes:
+ attributes:
title: Date - Quarter/Year
description: Quarter and Year (Q1/2020)
tags:
@@ -347,11 +349,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.quarter
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter
+ - id: date.year
type: label
- - attributes:
+ attributes:
title: Date - Year
description: Year
tags:
@@ -359,11 +361,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.year
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year
+ - id: date.minuteOfHour
type: label
- - attributes:
+ attributes:
title: Date - Minute of Hour
description: Generic Minute of the Hour(MI1-MI60)
tags:
@@ -371,11 +373,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.minuteOfHour
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.minuteOfHour
+ - id: date.hourOfDay
type: label
- - attributes:
+ attributes:
title: Date - Hour of Day
description: Generic Hour of the Day(H1-H24)
tags:
@@ -383,11 +385,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.hourOfDay
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.hourOfDay
+ - id: date.dayOfWeek
type: label
- - attributes:
+ attributes:
title: Date - Day of Week
description: Generic Day of the Week (D1-D7)
tags:
@@ -395,11 +397,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.dayOfWeek
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfWeek
+ - id: date.dayOfMonth
type: label
- - attributes:
+ attributes:
title: Date - Day of Month
description: Generic Day of the Month (D1-D31)
tags:
@@ -407,11 +409,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.dayOfMonth
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfMonth
+ - id: date.dayOfYear
type: label
- - attributes:
+ attributes:
title: Date - Day of Year
description: Generic Day of the Year (D1-D366)
tags:
@@ -419,11 +421,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.dayOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.dayOfYear
+ - id: date.weekOfYear
type: label
- - attributes:
+ attributes:
title: Date - Week of Year
description: Generic Week (W1-W53)
tags:
@@ -431,11 +433,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.weekOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.weekOfYear
+ - id: date.monthOfYear
type: label
- - attributes:
+ attributes:
title: Date - Month of Year
description: Generic Month (M1-M12)
tags:
@@ -443,11 +445,11 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.monthOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.monthOfYear
+ - id: date.quarterOfYear
type: label
- - attributes:
+ attributes:
title: Date - Quarter of Year
description: Generic Quarter (Q1-Q4)
tags:
@@ -455,10 +457,8 @@ interactions:
primary: true
sourceColumn: ''
areRelationsValid: true
- id: date.quarterOfYear
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarterOfYear
- type: label
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/labels?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/labels?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml
index d8471390b..fee4c47a9 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '8359'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,59 +53,59 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: amount_of_active_customers
+ type: metric
+ attributes:
title: '# of Active Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers
+ - id: amount_of_orders
type: metric
- - attributes:
+ attributes:
title: '# of Orders'
areRelationsValid: true
content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders
+ - id: amount_of_top_customers
type: metric
- - attributes:
+ attributes:
title: '# of Top Customers'
areRelationsValid: true
content:
format: '#,##0'
maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT
{metric/revenue} BY {attribute/customer_id}) > 10000 '
- id: amount_of_top_customers
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers
+ - id: amount_of_valid_orders
type: metric
- - attributes:
+ attributes:
title: '# of Valid Orders'
description: ''
areRelationsValid: true
@@ -111,107 +113,107 @@ interactions:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: amount_of_valid_orders
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders
+ - id: campaign_spend
type: metric
- - attributes:
+ attributes:
title: Campaign Spend
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend
+ - id: order_amount
type: metric
- - attributes:
+ attributes:
title: Order Amount
areRelationsValid: true
content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount
+ - id: percent_revenue
type: metric
- - attributes:
+ attributes:
title: '% Revenue'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue
+ - id: percent_revenue_from_top_10_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers
+ - id: percent_revenue_from_top_10_percent_customers
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Customers'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers
+ - id: percent_revenue_from_top_10_percent_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10% Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products
+ - id: percent_revenue_from_top_10_products
type: metric
- - attributes:
+ attributes:
title: '% Revenue from Top 10 Products'
areRelationsValid: true
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
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products
+ - id: percent_revenue_in_category
type: metric
- - attributes:
+ attributes:
title: '% Revenue in Category'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category},
ALL OTHER)
- id: percent_revenue_in_category
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category
+ - id: percent_revenue_per_product
type: metric
- - attributes:
+ attributes:
title: '% Revenue per Product'
areRelationsValid: true
content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL
{attribute/product_id})
- id: percent_revenue_per_product
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product
+ - id: revenue
type: metric
- - attributes:
+ attributes:
title: Revenue
description: ''
areRelationsValid: true
@@ -219,114 +221,112 @@ interactions:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- id: revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue
+ - id: revenue-clothing
type: metric
- - attributes:
+ attributes:
title: Revenue (Clothing)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing
+ - id: revenue-electronic
type: metric
- - attributes:
+ attributes:
title: Revenue (Electronic)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic
+ - id: revenue-home
type: metric
- - attributes:
+ attributes:
title: Revenue (Home)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home
+ - id: revenue-outdoor
type: metric
- - attributes:
+ attributes:
title: Revenue (Outdoor)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor
+ - id: revenue_per_customer
type: metric
- - attributes:
+ attributes:
title: Revenue per Customer
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer
+ - id: revenue_per_dollar_spent
type: metric
- - attributes:
+ attributes:
title: Revenue per Dollar Spent
areRelationsValid: true
content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent
+ - id: revenue_top_10
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10
+ - id: revenue_top_10_percent
type: metric
- - attributes:
+ attributes:
title: Revenue / Top 10%
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent
+ - id: total_revenue
type: metric
- - attributes:
+ attributes:
title: Total Revenue
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue
+ - id: total_revenue-no_filters
type: metric
- - attributes:
+ attributes:
title: Total Revenue (No Filters)
areRelationsValid: true
content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters
- type: metric
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500
next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml
index ae753466a..88e0dde78 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '27355'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,29 +53,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -114,10 +117,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -149,9 +151,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -295,24 +298,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -330,10 +320,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -346,147 +336,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -544,9 +533,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -616,9 +605,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -691,9 +680,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -746,9 +735,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -799,9 +788,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -848,9 +837,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -919,9 +908,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -972,9 +961,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -1067,9 +1056,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -1119,9 +1108,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -1154,9 +1143,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -1206,9 +1195,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -1270,9 +1259,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -1323,9 +1312,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -1376,5 +1365,16 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml
index 6d528ab8f..dc3651377 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,72 +53,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -124,131 +121,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -274,47 +271,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -331,10 +336,5 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml
index 565428928..e3814d280 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '26158'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,1141 +53,1139 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
graph:
- edges:
- - - id: campaign_channel_id
- type: attribute
- - id: campaign_channels
- type: dataset
- - - id: campaign_channels.category
- type: attribute
- - id: campaign_channels
- type: dataset
- - - id: campaign_id
- type: attribute
- - id: campaigns
- type: dataset
- - - id: campaign_name
- type: attribute
- - id: campaigns
- type: dataset
- - - id: customer_id
- type: attribute
- - id: revenue_per_customer
- type: metric
- - - id: customer_id
- type: attribute
- - id: percent_revenue_from_top_10_percent_customers
- type: metric
- - - id: customer_id
- type: attribute
- - id: amount_of_active_customers
- type: metric
- - - id: customer_id
- type: attribute
- - id: amount_of_top_customers
- type: metric
- - - id: customer_id
- type: attribute
- - id: customers
- type: dataset
- - - id: customer_id
- type: attribute
- - id: percent_revenue_from_top_10_customers
- type: metric
- - - id: customer_name
- type: attribute
- - id: customers
- type: dataset
- - - id: date.day
- type: attribute
- - id: date
- type: dataset
- - - id: date.dayOfMonth
- type: attribute
- - id: date
- type: dataset
- - - id: date.dayOfWeek
- type: attribute
- - id: date
- type: dataset
- - - id: date.dayOfYear
- type: attribute
- - id: date
- type: dataset
- - - id: date.hour
- type: attribute
- - id: date
- type: dataset
- - - id: date.hourOfDay
- type: attribute
- - id: date
- type: dataset
- - - id: date.minute
- type: attribute
- - id: date
- type: dataset
- - - id: date.minuteOfHour
- type: attribute
- - id: date
- type: dataset
- - - id: date.month
- type: attribute
- - id: date
- type: dataset
- - - id: date.monthOfYear
- type: attribute
- - id: date
- type: dataset
- - - id: date.quarter
- type: attribute
- - id: date
- type: dataset
- - - id: date.quarterOfYear
- type: attribute
- - id: date
- type: dataset
- - - id: date.week
- type: attribute
- - id: date
- type: dataset
- - - id: date.weekOfYear
- type: attribute
- - id: date
- type: dataset
- - - id: date.year
- type: attribute
- - id: date
- type: dataset
- - - id: date.year
- type: attribute
- - id: product_revenue_comparison-over_previous_period
- type: visualizationObject
- - - id: order_id
- type: attribute
- - id: amount_of_orders
- type: metric
- - - id: order_id
- type: attribute
- - id: order_lines
- type: dataset
- - - id: order_line_id
- type: attribute
- - id: amount_of_active_customers
- type: metric
- - - id: order_line_id
- type: attribute
- - id: order_lines
- type: dataset
- - - id: order_status
- type: attribute
- - id: order_lines
- type: dataset
- - - id: product_id
- type: attribute
- - id: products
- type: dataset
- - - id: product_id
- type: attribute
- - id: percent_revenue_from_top_10_percent_products
- type: metric
- - - id: product_id
- type: attribute
- - id: percent_revenue_from_top_10_products
- type: metric
- - - id: product_id
- type: attribute
- - id: percent_revenue_per_product
- type: metric
- - - id: product_name
- type: attribute
- - id: products
- type: dataset
- - - id: products.category
- type: attribute
- - id: products
- type: dataset
- - - id: products.category
- type: attribute
- - id: percent_revenue_in_category
- type: metric
- - - id: region
- type: attribute
- - id: customers
- type: dataset
- - - id: state
- type: attribute
- - id: customers
- type: dataset
- - - id: type
- type: attribute
- - id: campaign_channels
- type: dataset
- - - id: dashboard_plugin_1
- type: dashboardPlugin
- - id: dashboard_plugin
- type: analyticalDashboard
- - - id: campaigns
- type: dataset
- - id: campaign_channels
- type: dataset
- - - id: campaigns
- type: dataset
- - id: order_lines
- type: dataset
- - - id: customers
- type: dataset
- - id: order_lines
- type: dataset
- - - id: date
- type: dataset
- - id: revenue_trend
- type: visualizationObject
- - - id: date
- type: dataset
- - id: customers_trend
- type: visualizationObject
- - - id: date
- type: dataset
- - id: product_revenue_comparison-over_previous_period
- type: visualizationObject
- - - id: date
- type: dataset
- - id: order_lines
- type: dataset
- - - id: date
- type: dataset
- - id: percentage_of_customers_by_region
- type: visualizationObject
- - - id: date
- type: dataset
- - id: revenue_by_category_trend
- type: visualizationObject
- - - id: date
- type: dataset
- - id: product_and_category
- type: analyticalDashboard
- - - id: products
- type: dataset
- - id: order_lines
- type: dataset
- - - id: budget
- type: fact
- - id: campaign_channels
- type: dataset
- - - id: price
- type: fact
- - id: revenue_and_quantity_by_product_and_category
- type: visualizationObject
- - - id: price
- type: fact
- - id: order_lines
- type: dataset
- - - id: price
- type: fact
- - id: order_amount
- type: metric
- - - id: quantity
- type: fact
- - id: revenue_and_quantity_by_product_and_category
- type: visualizationObject
- - - id: quantity
- type: fact
- - id: order_lines
- type: dataset
- - - id: quantity
- type: fact
- - id: order_amount
- type: metric
- - - id: spend
- type: fact
- - id: campaign_channels
- type: dataset
- - - id: spend
- type: fact
- - id: campaign_spend
- type: metric
- - - id: campaign_name_filter
- type: filterContext
- - id: campaign
- type: analyticalDashboard
- - - id: campaign_name_filter
- type: filterContext
- - id: dashboard_plugin
- type: analyticalDashboard
- - - id: region_filter
- type: filterContext
- - id: product_and_category
- type: analyticalDashboard
- - - id: campaign_channel_id
- type: label
- - id: campaign_channel_id
- type: attribute
- - - id: campaign_channels.category
- type: label
- - id: campaign_spend
- type: visualizationObject
- - - id: campaign_channels.category
- type: label
- - id: campaign_channels.category
- type: attribute
- - - id: campaign_id
- type: label
- - id: campaign_id
- type: attribute
- - - id: campaign_name
- type: label
- - id: campaign_spend
- type: visualizationObject
- - - id: campaign_name
- type: label
- - id: campaign_name_filter
- type: filterContext
- - - id: campaign_name
- type: label
- - id: revenue_per_usd_vs_spend_by_campaign
- type: visualizationObject
- - - id: campaign_name
- type: label
- - id: campaign_name
- type: attribute
- - - id: customer_id
- type: label
- - id: customer_id
- type: attribute
- - - id: customer_name
- type: label
- - id: customer_name
- type: attribute
- - - id: customer_name
- type: label
- - id: percent_revenue_per_product_by_customer_and_category
- type: visualizationObject
- - - id: customer_name
- type: label
- - id: revenue_and_quantity_by_product_and_category
- type: visualizationObject
- - - id: customer_name
- type: label
- - id: top_10_customers
- type: visualizationObject
- - - id: date.day
- type: label
- - id: date.day
- type: attribute
- - - id: date.dayOfMonth
- type: label
- - id: date.dayOfMonth
- type: attribute
- - - id: date.dayOfWeek
- type: label
- - id: date.dayOfWeek
- type: attribute
- - - id: date.dayOfYear
- type: label
- - id: date.dayOfYear
- type: attribute
- - - id: date.hour
- type: label
- - id: date.hour
- type: attribute
- - - id: date.hourOfDay
- type: label
- - id: date.hourOfDay
- type: attribute
- - - id: date.minute
- type: label
- - id: date.minute
- type: attribute
- - - id: date.minuteOfHour
- type: label
- - id: date.minuteOfHour
- type: attribute
- - - id: date.month
- type: label
- - id: date.month
- type: attribute
- - - id: date.month
- type: label
- - id: customers_trend
- type: visualizationObject
- - - id: date.month
- type: label
- - id: percentage_of_customers_by_region
- type: visualizationObject
- - - id: date.month
- type: label
- - id: revenue_by_category_trend
- type: visualizationObject
- - - id: date.month
- type: label
- - id: revenue_trend
- type: visualizationObject
- - - id: date.monthOfYear
- type: label
- - id: date.monthOfYear
- type: attribute
- - - id: date.quarter
- type: label
- - id: date.quarter
- type: attribute
- - - id: date.quarterOfYear
- type: label
- - id: date.quarterOfYear
- type: attribute
- - - id: date.week
- type: label
- - id: date.week
- type: attribute
- - - id: date.weekOfYear
- type: label
- - id: date.weekOfYear
- type: attribute
- - - id: date.year
- type: label
- - id: date.year
- type: attribute
- - - id: geo__state__location
- type: label
- - id: state
- type: attribute
- - - id: order_id
- type: label
- - id: order_id
- type: attribute
- - - id: order_line_id
- type: label
- - id: order_line_id
- type: attribute
- - - id: order_status
- type: label
- - id: amount_of_valid_orders
- type: metric
- - - id: order_status
- type: label
- - id: order_status
- type: attribute
- - - id: order_status
- type: label
- - id: revenue
- type: metric
- - - id: product_id
- type: label
- - id: product_id
- type: attribute
- - - id: product_name
- type: label
- - id: product_saleability
- type: visualizationObject
- - - id: product_name
- type: label
- - id: revenue_and_quantity_by_product_and_category
- type: visualizationObject
- - - id: product_name
- type: label
- - id: product_categories_pie_chart
- type: visualizationObject
- - - id: product_name
- type: label
- - id: product_revenue_comparison-over_previous_period
- type: visualizationObject
- - - id: product_name
- type: label
- - id: product_name
- type: attribute
- - - id: product_name
- type: label
- - id: percent_revenue_per_product_by_customer_and_category
- type: visualizationObject
- - - id: product_name
- type: label
- - id: top_10_products
- type: visualizationObject
- - - id: product_name
- type: label
- - id: product_breakdown
- type: visualizationObject
- - - id: product_name
- type: label
- - id: revenue_by_product
- type: visualizationObject
- - - id: products.category
- type: label
- - id: revenue-home
- type: metric
- - - id: products.category
- type: label
- - id: revenue_and_quantity_by_product_and_category
- type: visualizationObject
- - - id: products.category
- type: label
- - id: products.category
- type: attribute
- - - id: products.category
- type: label
- - id: product_categories_pie_chart
- type: visualizationObject
- - - id: products.category
- type: label
- - id: product_revenue_comparison-over_previous_period
- type: visualizationObject
- - - id: products.category
- type: label
- - id: revenue-outdoor
- type: metric
- - - id: products.category
- type: label
- - id: percent_revenue_per_product_by_customer_and_category
- type: visualizationObject
- - - id: products.category
- type: label
- - id: revenue_by_category_trend
- type: visualizationObject
- - - id: products.category
- type: label
- - id: top_10_products
- type: visualizationObject
- - - id: products.category
- type: label
- - id: revenue-clothing
- type: metric
- - - id: products.category
- type: label
- - id: product_breakdown
- type: visualizationObject
- - - id: products.category
- type: label
- - id: revenue-electronic
- type: metric
- - - id: region
- type: label
- - id: region
- type: attribute
- - - id: region
- type: label
- - id: region_filter
- type: filterContext
- - - id: region
- type: label
- - id: percentage_of_customers_by_region
- type: visualizationObject
- - - id: state
- type: label
- - id: state
- type: attribute
- - - id: state
- type: label
- - id: top_10_customers
- type: visualizationObject
- - - id: type
- type: label
- - id: type
- type: attribute
- - - id: type
- type: label
- - id: campaign_spend
- type: visualizationObject
- - - id: amount_of_active_customers
- type: metric
- - id: customers_trend
- type: visualizationObject
- - - id: amount_of_active_customers
- type: metric
- - id: amount_of_top_customers
- type: metric
- - - id: amount_of_active_customers
- type: metric
- - id: percentage_of_customers_by_region
- type: visualizationObject
- - - id: amount_of_orders
- type: metric
- - id: amount_of_valid_orders
- type: metric
- - - id: amount_of_orders
- type: metric
- - id: product_saleability
- type: visualizationObject
- - - id: amount_of_orders
- type: metric
- - id: revenue_trend
- type: visualizationObject
- - - id: campaign_spend
- type: metric
- - id: campaign_spend
- type: visualizationObject
- - - id: campaign_spend
- type: metric
- - id: revenue_per_usd_vs_spend_by_campaign
- type: visualizationObject
- - - id: campaign_spend
- type: metric
- - id: revenue_per_dollar_spent
- type: metric
- - - id: order_amount
- type: metric
- - id: revenue
- type: metric
- - - id: percent_revenue_in_category
- type: metric
- - id: revenue_and_quantity_by_product_and_category
- type: visualizationObject
- - - id: percent_revenue_per_product
- type: metric
- - id: percent_revenue_per_product_by_customer_and_category
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: product_saleability
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: revenue_and_quantity_by_product_and_category
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: revenue_trend
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: percent_revenue_per_product
- type: metric
- - - id: revenue
- type: metric
- - id: revenue_per_customer
- type: metric
- - - id: revenue
- type: metric
- - id: percent_revenue_per_product_by_customer_and_category
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: revenue-clothing
- type: metric
- - - id: revenue
- type: metric
- - id: percent_revenue_from_top_10_products
- type: metric
- - - id: revenue
- type: metric
- - id: revenue_top_10
- type: metric
- - - id: revenue
- type: metric
- - id: product_breakdown
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: revenue_by_product
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: revenue-electronic
- type: metric
- - - id: revenue
- type: metric
- - id: revenue-home
- type: metric
- - - id: revenue
- type: metric
- - id: amount_of_top_customers
- type: metric
- - - id: revenue
- type: metric
- - id: percent_revenue_in_category
- type: metric
- - - id: revenue
- type: metric
- - id: revenue_per_dollar_spent
- type: metric
- - - id: revenue
- type: metric
- - id: product_categories_pie_chart
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: product_revenue_comparison-over_previous_period
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: revenue-outdoor
- type: metric
- - - id: revenue
- type: metric
- - id: percent_revenue_from_top_10_customers
- type: metric
- - - id: revenue
- type: metric
- - id: revenue_top_10_percent
- type: metric
- - - id: revenue
- type: metric
- - id: percent_revenue_from_top_10_percent_customers
- type: metric
- - - id: revenue
- type: metric
- - id: revenue_by_category_trend
- type: visualizationObject
- - - id: revenue
- type: metric
- - id: percent_revenue_from_top_10_percent_products
- type: metric
- - - id: revenue
- type: metric
- - id: percent_revenue
- type: metric
- - - id: revenue
- type: metric
- - id: total_revenue
- type: metric
- - - id: revenue_per_customer
- type: metric
- - id: customers_trend
- type: visualizationObject
- - - id: revenue_per_dollar_spent
- type: metric
- - id: revenue_per_usd_vs_spend_by_campaign
- type: visualizationObject
- - - id: revenue_top_10
- type: metric
- - id: top_10_customers
- type: visualizationObject
- - - id: revenue_top_10
- type: metric
- - id: top_10_products
- type: visualizationObject
- - - id: revenue_top_10
- type: metric
- - id: percent_revenue_from_top_10_products
- type: metric
- - - id: revenue_top_10
- type: metric
- - id: percent_revenue_from_top_10_customers
- type: metric
- - - id: revenue_top_10_percent
- type: metric
- - id: percent_revenue_from_top_10_percent_customers
- type: metric
- - - id: revenue_top_10_percent
- type: metric
- - id: percent_revenue_from_top_10_percent_products
- type: metric
- - - id: total_revenue
- type: metric
- - id: percent_revenue
- type: metric
- - - id: total_revenue
- type: metric
- - id: total_revenue-no_filters
- type: metric
- - - id: campaign_spend
- type: visualizationObject
- - id: campaign
- type: analyticalDashboard
- - - id: customers_trend
- type: visualizationObject
- - id: product_and_category
- type: analyticalDashboard
- - - id: percent_revenue_per_product_by_customer_and_category
- type: visualizationObject
- - id: product_and_category
- type: analyticalDashboard
- - - id: product_breakdown
- type: visualizationObject
- - id: product_and_category
- type: analyticalDashboard
- - - id: product_categories_pie_chart
- type: visualizationObject
- - id: product_and_category
- type: analyticalDashboard
- - - id: product_saleability
- type: visualizationObject
- - id: product_and_category
- type: analyticalDashboard
- - - id: revenue_per_usd_vs_spend_by_campaign
- type: visualizationObject
- - id: campaign
- type: analyticalDashboard
- - - id: revenue_trend
- type: visualizationObject
- - id: product_and_category
- type: analyticalDashboard
- - - id: top_10_products
- type: visualizationObject
- - id: product_and_category
- type: analyticalDashboard
- - - id: top_10_products
- type: visualizationObject
- - id: dashboard_plugin
- type: analyticalDashboard
nodes:
- id: campaign
- title: Campaign
type: analyticalDashboard
+ title: Campaign
- id: dashboard_plugin
- title: Dashboard plugin
type: analyticalDashboard
+ title: Dashboard plugin
- id: product_and_category
- title: Product & Category
type: analyticalDashboard
+ title: Product & Category
- id: campaign_channel_id
- title: Campaign channel id
type: attribute
+ title: Campaign channel id
- id: campaign_channels.category
- title: Category
type: attribute
+ title: Category
- id: campaign_id
- title: Campaign id
type: attribute
+ title: Campaign id
- id: campaign_name
- title: Campaign name
type: attribute
+ title: Campaign name
- id: customer_id
- title: Customer id
type: attribute
+ title: Customer id
- id: customer_name
- title: Customer name
type: attribute
+ title: Customer name
- id: date.day
- title: Date - Date
type: attribute
+ title: Date - Date
- id: date.dayOfMonth
- title: Date - Day of Month
type: attribute
+ title: Date - Day of Month
- id: date.dayOfWeek
- title: Date - Day of Week
type: attribute
+ title: Date - Day of Week
- id: date.dayOfYear
- title: Date - Day of Year
type: attribute
+ title: Date - Day of Year
- id: date.hour
- title: Date - Hour
type: attribute
+ title: Date - Hour
- id: date.hourOfDay
- title: Date - Hour of Day
type: attribute
+ title: Date - Hour of Day
- id: date.minute
- title: Date - Minute
type: attribute
+ title: Date - Minute
- id: date.minuteOfHour
- title: Date - Minute of Hour
type: attribute
+ title: Date - Minute of Hour
- id: date.month
- title: Date - Month/Year
type: attribute
+ title: Date - Month/Year
- id: date.monthOfYear
- title: Date - Month of Year
type: attribute
+ title: Date - Month of Year
- id: date.quarter
- title: Date - Quarter/Year
type: attribute
+ title: Date - Quarter/Year
- id: date.quarterOfYear
- title: Date - Quarter of Year
type: attribute
+ title: Date - Quarter of Year
- id: date.week
- title: Date - Week/Year
type: attribute
+ title: Date - Week/Year
- id: date.weekOfYear
- title: Date - Week of Year
type: attribute
+ title: Date - Week of Year
- id: date.year
- title: Date - Year
type: attribute
+ title: Date - Year
- id: order_id
- title: Order id
type: attribute
+ title: Order id
- id: order_line_id
- title: Order line id
type: attribute
+ title: Order line id
- id: order_status
- title: Order status
type: attribute
+ title: Order status
- id: product_id
- title: Product id
type: attribute
+ title: Product id
- id: product_name
- title: Product name
type: attribute
+ title: Product name
- id: products.category
- title: Category
type: attribute
+ title: Category
- id: region
- title: Region
type: attribute
+ title: Region
- id: state
- title: State
type: attribute
+ title: State
- id: type
- title: Type
type: attribute
+ title: Type
- id: dashboard_plugin_1
- title: dashboard_plugin_1
type: dashboardPlugin
+ title: dashboard_plugin_1
- id: dashboard_plugin_2
- title: dashboard_plugin_2
type: dashboardPlugin
+ title: dashboard_plugin_2
- id: campaign_channels
- title: Campaign channels
type: dataset
+ title: Campaign channels
- id: campaigns
- title: Campaigns
type: dataset
+ title: Campaigns
- id: customers
- title: Customers
type: dataset
+ title: Customers
- id: date
- title: Date
type: dataset
+ title: Date
- id: order_lines
- title: Order lines
type: dataset
+ title: Order lines
- id: products
- title: Products
type: dataset
+ title: Products
- id: budget
- title: Budget
type: fact
+ title: Budget
- id: price
- title: Price
type: fact
+ title: Price
- id: quantity
- title: Quantity
type: fact
+ title: Quantity
- id: spend
- title: Spend
type: fact
+ title: Spend
- id: campaign_name_filter
- title: filterContext
type: filterContext
- - id: region_filter
title: filterContext
+ - id: region_filter
type: filterContext
+ title: filterContext
- id: campaign_channel_id
- title: Campaign channel id
type: label
+ title: Campaign channel id
- id: campaign_channels.category
- title: Category
type: label
+ title: Category
- id: campaign_id
- title: Campaign id
type: label
+ title: Campaign id
- id: campaign_name
- title: Campaign name
type: label
+ title: Campaign name
- id: customer_id
- title: Customer id
type: label
+ title: Customer id
- id: customer_name
- title: Customer name
type: label
+ title: Customer name
- id: date.day
- title: Date - Date
type: label
+ title: Date - Date
- id: date.dayOfMonth
- title: Date - Day of Month
type: label
+ title: Date - Day of Month
- id: date.dayOfWeek
- title: Date - Day of Week
type: label
+ title: Date - Day of Week
- id: date.dayOfYear
- title: Date - Day of Year
type: label
+ title: Date - Day of Year
- id: date.hour
- title: Date - Hour
type: label
+ title: Date - Hour
- id: date.hourOfDay
- title: Date - Hour of Day
type: label
+ title: Date - Hour of Day
- id: date.minute
- title: Date - Minute
type: label
+ title: Date - Minute
- id: date.minuteOfHour
- title: Date - Minute of Hour
type: label
+ title: Date - Minute of Hour
- id: date.month
- title: Date - Month/Year
type: label
+ title: Date - Month/Year
- id: date.monthOfYear
- title: Date - Month of Year
type: label
+ title: Date - Month of Year
- id: date.quarter
- title: Date - Quarter/Year
type: label
+ title: Date - Quarter/Year
- id: date.quarterOfYear
- title: Date - Quarter of Year
type: label
+ title: Date - Quarter of Year
- id: date.week
- title: Date - Week/Year
type: label
+ title: Date - Week/Year
- id: date.weekOfYear
- title: Date - Week of Year
type: label
+ title: Date - Week of Year
- id: date.year
- title: Date - Year
type: label
+ title: Date - Year
- id: geo__state__location
- title: Location
type: label
+ title: Location
- id: order_id
- title: Order id
type: label
+ title: Order id
- id: order_line_id
- title: Order line id
type: label
+ title: Order line id
- id: order_status
- title: Order status
type: label
+ title: Order status
- id: product_id
- title: Product id
type: label
+ title: Product id
- id: product_name
- title: Product name
type: label
+ title: Product name
- id: products.category
- title: Category
type: label
+ title: Category
- id: region
- title: Region
type: label
+ title: Region
- id: state
- title: State
type: label
+ title: State
- id: type
- title: Type
type: label
+ title: Type
- id: amount_of_active_customers
- title: '# of Active Customers'
type: metric
+ title: '# of Active Customers'
- id: amount_of_orders
- title: '# of Orders'
type: metric
+ title: '# of Orders'
- id: amount_of_top_customers
- title: '# of Top Customers'
type: metric
+ title: '# of Top Customers'
- id: amount_of_valid_orders
- title: '# of Valid Orders'
type: metric
+ title: '# of Valid Orders'
- id: campaign_spend
- title: Campaign Spend
type: metric
+ title: Campaign Spend
- id: order_amount
- title: Order Amount
type: metric
+ title: Order Amount
- id: percent_revenue
- title: '% Revenue'
type: metric
+ title: '% Revenue'
- id: percent_revenue_from_top_10_customers
- title: '% Revenue from Top 10 Customers'
type: metric
+ title: '% Revenue from Top 10 Customers'
- id: percent_revenue_from_top_10_percent_customers
- title: '% Revenue from Top 10% Customers'
type: metric
+ title: '% Revenue from Top 10% Customers'
- id: percent_revenue_from_top_10_percent_products
- title: '% Revenue from Top 10% Products'
type: metric
+ title: '% Revenue from Top 10% Products'
- id: percent_revenue_from_top_10_products
- title: '% Revenue from Top 10 Products'
type: metric
+ title: '% Revenue from Top 10 Products'
- id: percent_revenue_in_category
- title: '% Revenue in Category'
type: metric
+ title: '% Revenue in Category'
- id: percent_revenue_per_product
- title: '% Revenue per Product'
type: metric
+ title: '% Revenue per Product'
- id: revenue
- title: Revenue
type: metric
+ title: Revenue
- id: revenue-clothing
- title: Revenue (Clothing)
type: metric
+ title: Revenue (Clothing)
- id: revenue-electronic
- title: Revenue (Electronic)
type: metric
+ title: Revenue (Electronic)
- id: revenue-home
- title: Revenue (Home)
type: metric
+ title: Revenue (Home)
- id: revenue-outdoor
- title: Revenue (Outdoor)
type: metric
+ title: Revenue (Outdoor)
- id: revenue_per_customer
- title: Revenue per Customer
type: metric
+ title: Revenue per Customer
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
type: metric
+ title: Revenue per Dollar Spent
- id: revenue_top_10
- title: Revenue / Top 10
type: metric
+ title: Revenue / Top 10
- id: revenue_top_10_percent
- title: Revenue / Top 10%
type: metric
+ title: Revenue / Top 10%
- id: total_revenue
- title: Total Revenue
type: metric
+ title: Total Revenue
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
type: metric
+ title: Total Revenue (No Filters)
- id: campaign_spend
- title: Campaign Spend
type: visualizationObject
+ title: Campaign Spend
- id: customers_trend
- title: Customers Trend
type: visualizationObject
+ title: Customers Trend
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
type: visualizationObject
+ title: '% Revenue per Product by Customer and Category'
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
type: visualizationObject
+ title: Percentage of Customers by Region
- id: product_breakdown
- title: Product Breakdown
type: visualizationObject
+ title: Product Breakdown
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
type: visualizationObject
+ title: Product Categories Pie Chart
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
type: visualizationObject
+ title: Product Revenue Comparison (over previous period)
- id: product_saleability
- title: Product Saleability
type: visualizationObject
+ title: Product Saleability
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
type: visualizationObject
+ title: Revenue and Quantity by Product and Category
- id: revenue_by_category_trend
- title: Revenue by Category Trend
type: visualizationObject
+ title: Revenue by Category Trend
- id: revenue_by_product
- title: Revenue by Product
type: visualizationObject
+ title: Revenue by Product
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
type: visualizationObject
+ title: Revenue per $ vs Spend by Campaign
- id: revenue_trend
- title: Revenue Trend
type: visualizationObject
+ title: Revenue Trend
- id: top_10_customers
- title: Top 10 Customers
type: visualizationObject
+ title: Top 10 Customers
- id: top_10_products
- title: Top 10 Products
type: visualizationObject
+ title: Top 10 Products
+ edges:
+ - - id: campaign_channel_id
+ type: attribute
+ - id: campaign_channels
+ type: dataset
+ - - id: campaign_channels.category
+ type: attribute
+ - id: campaign_channels
+ type: dataset
+ - - id: campaign_id
+ type: attribute
+ - id: campaigns
+ type: dataset
+ - - id: campaign_name
+ type: attribute
+ - id: campaigns
+ type: dataset
+ - - id: customer_id
+ type: attribute
+ - id: amount_of_top_customers
+ type: metric
+ - - id: customer_id
+ type: attribute
+ - id: revenue_per_customer
+ type: metric
+ - - id: customer_id
+ type: attribute
+ - id: customers
+ type: dataset
+ - - id: customer_id
+ type: attribute
+ - id: percent_revenue_from_top_10_percent_customers
+ type: metric
+ - - id: customer_id
+ type: attribute
+ - id: amount_of_active_customers
+ type: metric
+ - - id: customer_id
+ type: attribute
+ - id: percent_revenue_from_top_10_customers
+ type: metric
+ - - id: customer_name
+ type: attribute
+ - id: customers
+ type: dataset
+ - - id: date.day
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.dayOfMonth
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.dayOfWeek
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.dayOfYear
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.hour
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.hourOfDay
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.minute
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.minuteOfHour
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.month
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.monthOfYear
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.quarter
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.quarterOfYear
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.week
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.weekOfYear
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: date.year
+ type: attribute
+ - id: product_revenue_comparison-over_previous_period
+ type: visualizationObject
+ - - id: date.year
+ type: attribute
+ - id: date
+ type: dataset
+ - - id: order_id
+ type: attribute
+ - id: order_lines
+ type: dataset
+ - - id: order_id
+ type: attribute
+ - id: amount_of_orders
+ type: metric
+ - - id: order_line_id
+ type: attribute
+ - id: order_lines
+ type: dataset
+ - - id: order_line_id
+ type: attribute
+ - id: amount_of_active_customers
+ type: metric
+ - - id: order_status
+ type: attribute
+ - id: order_lines
+ type: dataset
+ - - id: product_id
+ type: attribute
+ - id: products
+ type: dataset
+ - - id: product_id
+ type: attribute
+ - id: percent_revenue_from_top_10_percent_products
+ type: metric
+ - - id: product_id
+ type: attribute
+ - id: percent_revenue_from_top_10_products
+ type: metric
+ - - id: product_id
+ type: attribute
+ - id: percent_revenue_per_product
+ type: metric
+ - - id: product_name
+ type: attribute
+ - id: products
+ type: dataset
+ - - id: products.category
+ type: attribute
+ - id: products
+ type: dataset
+ - - id: products.category
+ type: attribute
+ - id: percent_revenue_in_category
+ type: metric
+ - - id: region
+ type: attribute
+ - id: customers
+ type: dataset
+ - - id: state
+ type: attribute
+ - id: customers
+ type: dataset
+ - - id: type
+ type: attribute
+ - id: campaign_channels
+ type: dataset
+ - - id: dashboard_plugin_1
+ type: dashboardPlugin
+ - id: dashboard_plugin
+ type: analyticalDashboard
+ - - id: campaigns
+ type: dataset
+ - id: campaign_channels
+ type: dataset
+ - - id: campaigns
+ type: dataset
+ - id: order_lines
+ type: dataset
+ - - id: customers
+ type: dataset
+ - id: order_lines
+ type: dataset
+ - - id: date
+ type: dataset
+ - id: order_lines
+ type: dataset
+ - - id: date
+ type: dataset
+ - id: revenue_by_category_trend
+ type: visualizationObject
+ - - id: date
+ type: dataset
+ - id: product_revenue_comparison-over_previous_period
+ type: visualizationObject
+ - - id: date
+ type: dataset
+ - id: product_and_category
+ type: analyticalDashboard
+ - - id: date
+ type: dataset
+ - id: customers_trend
+ type: visualizationObject
+ - - id: date
+ type: dataset
+ - id: percentage_of_customers_by_region
+ type: visualizationObject
+ - - id: date
+ type: dataset
+ - id: revenue_trend
+ type: visualizationObject
+ - - id: products
+ type: dataset
+ - id: order_lines
+ type: dataset
+ - - id: budget
+ type: fact
+ - id: campaign_channels
+ type: dataset
+ - - id: price
+ type: fact
+ - id: order_lines
+ type: dataset
+ - - id: price
+ type: fact
+ - id: order_amount
+ type: metric
+ - - id: price
+ type: fact
+ - id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
+ - - id: quantity
+ type: fact
+ - id: order_lines
+ type: dataset
+ - - id: quantity
+ type: fact
+ - id: order_amount
+ type: metric
+ - - id: quantity
+ type: fact
+ - id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
+ - - id: spend
+ type: fact
+ - id: campaign_channels
+ type: dataset
+ - - id: spend
+ type: fact
+ - id: campaign_spend
+ type: metric
+ - - id: campaign_name_filter
+ type: filterContext
+ - id: campaign
+ type: analyticalDashboard
+ - - id: campaign_name_filter
+ type: filterContext
+ - id: dashboard_plugin
+ type: analyticalDashboard
+ - - id: region_filter
+ type: filterContext
+ - id: product_and_category
+ type: analyticalDashboard
+ - - id: campaign_channel_id
+ type: label
+ - id: campaign_channel_id
+ type: attribute
+ - - id: campaign_channels.category
+ type: label
+ - id: campaign_spend
+ type: visualizationObject
+ - - id: campaign_channels.category
+ type: label
+ - id: campaign_channels.category
+ type: attribute
+ - - id: campaign_id
+ type: label
+ - id: campaign_id
+ type: attribute
+ - - id: campaign_name
+ type: label
+ - id: campaign_name
+ type: attribute
+ - - id: campaign_name
+ type: label
+ - id: campaign_name_filter
+ type: filterContext
+ - - id: campaign_name
+ type: label
+ - id: campaign_spend
+ type: visualizationObject
+ - - id: campaign_name
+ type: label
+ - id: revenue_per_usd_vs_spend_by_campaign
+ type: visualizationObject
+ - - id: customer_id
+ type: label
+ - id: customer_id
+ type: attribute
+ - - id: customer_name
+ type: label
+ - id: customer_name
+ type: attribute
+ - - id: customer_name
+ type: label
+ - id: percent_revenue_per_product_by_customer_and_category
+ type: visualizationObject
+ - - id: customer_name
+ type: label
+ - id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
+ - - id: customer_name
+ type: label
+ - id: top_10_customers
+ type: visualizationObject
+ - - id: date.day
+ type: label
+ - id: date.day
+ type: attribute
+ - - id: date.dayOfMonth
+ type: label
+ - id: date.dayOfMonth
+ type: attribute
+ - - id: date.dayOfWeek
+ type: label
+ - id: date.dayOfWeek
+ type: attribute
+ - - id: date.dayOfYear
+ type: label
+ - id: date.dayOfYear
+ type: attribute
+ - - id: date.hour
+ type: label
+ - id: date.hour
+ type: attribute
+ - - id: date.hourOfDay
+ type: label
+ - id: date.hourOfDay
+ type: attribute
+ - - id: date.minute
+ type: label
+ - id: date.minute
+ type: attribute
+ - - id: date.minuteOfHour
+ type: label
+ - id: date.minuteOfHour
+ type: attribute
+ - - id: date.month
+ type: label
+ - id: customers_trend
+ type: visualizationObject
+ - - id: date.month
+ type: label
+ - id: percentage_of_customers_by_region
+ type: visualizationObject
+ - - id: date.month
+ type: label
+ - id: revenue_by_category_trend
+ type: visualizationObject
+ - - id: date.month
+ type: label
+ - id: date.month
+ type: attribute
+ - - id: date.month
+ type: label
+ - id: revenue_trend
+ type: visualizationObject
+ - - id: date.monthOfYear
+ type: label
+ - id: date.monthOfYear
+ type: attribute
+ - - id: date.quarter
+ type: label
+ - id: date.quarter
+ type: attribute
+ - - id: date.quarterOfYear
+ type: label
+ - id: date.quarterOfYear
+ type: attribute
+ - - id: date.week
+ type: label
+ - id: date.week
+ type: attribute
+ - - id: date.weekOfYear
+ type: label
+ - id: date.weekOfYear
+ type: attribute
+ - - id: date.year
+ type: label
+ - id: date.year
+ type: attribute
+ - - id: geo__state__location
+ type: label
+ - id: state
+ type: attribute
+ - - id: order_id
+ type: label
+ - id: order_id
+ type: attribute
+ - - id: order_line_id
+ type: label
+ - id: order_line_id
+ type: attribute
+ - - id: order_status
+ type: label
+ - id: amount_of_valid_orders
+ type: metric
+ - - id: order_status
+ type: label
+ - id: order_status
+ type: attribute
+ - - id: order_status
+ type: label
+ - id: revenue
+ type: metric
+ - - id: product_id
+ type: label
+ - id: product_id
+ type: attribute
+ - - id: product_name
+ type: label
+ - id: product_categories_pie_chart
+ type: visualizationObject
+ - - id: product_name
+ type: label
+ - id: product_saleability
+ type: visualizationObject
+ - - id: product_name
+ type: label
+ - id: revenue_by_product
+ type: visualizationObject
+ - - id: product_name
+ type: label
+ - id: percent_revenue_per_product_by_customer_and_category
+ type: visualizationObject
+ - - id: product_name
+ type: label
+ - id: product_breakdown
+ type: visualizationObject
+ - - id: product_name
+ type: label
+ - id: product_name
+ type: attribute
+ - - id: product_name
+ type: label
+ - id: product_revenue_comparison-over_previous_period
+ type: visualizationObject
+ - - id: product_name
+ type: label
+ - id: top_10_products
+ type: visualizationObject
+ - - id: product_name
+ type: label
+ - id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
+ - - id: products.category
+ type: label
+ - id: product_categories_pie_chart
+ type: visualizationObject
+ - - id: products.category
+ type: label
+ - id: revenue-home
+ type: metric
+ - - id: products.category
+ type: label
+ - id: revenue-clothing
+ type: metric
+ - - id: products.category
+ type: label
+ - id: revenue-outdoor
+ type: metric
+ - - id: products.category
+ type: label
+ - id: percent_revenue_per_product_by_customer_and_category
+ type: visualizationObject
+ - - id: products.category
+ type: label
+ - id: revenue-electronic
+ type: metric
+ - - id: products.category
+ type: label
+ - id: products.category
+ type: attribute
+ - - id: products.category
+ type: label
+ - id: product_breakdown
+ type: visualizationObject
+ - - id: products.category
+ type: label
+ - id: revenue_by_category_trend
+ type: visualizationObject
+ - - id: products.category
+ type: label
+ - id: product_revenue_comparison-over_previous_period
+ type: visualizationObject
+ - - id: products.category
+ type: label
+ - id: top_10_products
+ type: visualizationObject
+ - - id: products.category
+ type: label
+ - id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
+ - - id: region
+ type: label
+ - id: region_filter
+ type: filterContext
+ - - id: region
+ type: label
+ - id: region
+ type: attribute
+ - - id: region
+ type: label
+ - id: percentage_of_customers_by_region
+ type: visualizationObject
+ - - id: state
+ type: label
+ - id: state
+ type: attribute
+ - - id: state
+ type: label
+ - id: top_10_customers
+ type: visualizationObject
+ - - id: type
+ type: label
+ - id: type
+ type: attribute
+ - - id: type
+ type: label
+ - id: campaign_spend
+ type: visualizationObject
+ - - id: amount_of_active_customers
+ type: metric
+ - id: customers_trend
+ type: visualizationObject
+ - - id: amount_of_active_customers
+ type: metric
+ - id: amount_of_top_customers
+ type: metric
+ - - id: amount_of_active_customers
+ type: metric
+ - id: percentage_of_customers_by_region
+ type: visualizationObject
+ - - id: amount_of_orders
+ type: metric
+ - id: amount_of_valid_orders
+ type: metric
+ - - id: amount_of_orders
+ type: metric
+ - id: product_saleability
+ type: visualizationObject
+ - - id: amount_of_orders
+ type: metric
+ - id: revenue_trend
+ type: visualizationObject
+ - - id: campaign_spend
+ type: metric
+ - id: revenue_per_dollar_spent
+ type: metric
+ - - id: campaign_spend
+ type: metric
+ - id: campaign_spend
+ type: visualizationObject
+ - - id: campaign_spend
+ type: metric
+ - id: revenue_per_usd_vs_spend_by_campaign
+ type: visualizationObject
+ - - id: order_amount
+ type: metric
+ - id: revenue
+ type: metric
+ - - id: percent_revenue_in_category
+ type: metric
+ - id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
+ - - id: percent_revenue_per_product
+ type: metric
+ - id: percent_revenue_per_product_by_customer_and_category
+ type: visualizationObject
+ - - id: revenue
+ type: metric
+ - id: total_revenue
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: percent_revenue
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: product_categories_pie_chart
+ type: visualizationObject
+ - - id: revenue
+ type: metric
+ - id: percent_revenue_per_product
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: revenue_by_product
+ type: visualizationObject
+ - - id: revenue
+ type: metric
+ - id: revenue-clothing
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: revenue_top_10_percent
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: percent_revenue_per_product_by_customer_and_category
+ type: visualizationObject
+ - - id: revenue
+ type: metric
+ - id: percent_revenue_from_top_10_percent_products
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: amount_of_top_customers
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: revenue_by_category_trend
+ type: visualizationObject
+ - - id: revenue
+ type: metric
+ - id: percent_revenue_from_top_10_percent_customers
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: product_revenue_comparison-over_previous_period
+ type: visualizationObject
+ - - id: revenue
+ type: metric
+ - id: revenue_and_quantity_by_product_and_category
+ type: visualizationObject
+ - - id: revenue
+ type: metric
+ - id: revenue_per_dollar_spent
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: percent_revenue_from_top_10_products
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: percent_revenue_in_category
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: product_saleability
+ type: visualizationObject
+ - - id: revenue
+ type: metric
+ - id: revenue-home
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: percent_revenue_from_top_10_customers
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: revenue-outdoor
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: revenue-electronic
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: product_breakdown
+ type: visualizationObject
+ - - id: revenue
+ type: metric
+ - id: revenue_per_customer
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: revenue_top_10
+ type: metric
+ - - id: revenue
+ type: metric
+ - id: revenue_trend
+ type: visualizationObject
+ - - id: revenue_per_customer
+ type: metric
+ - id: customers_trend
+ type: visualizationObject
+ - - id: revenue_per_dollar_spent
+ type: metric
+ - id: revenue_per_usd_vs_spend_by_campaign
+ type: visualizationObject
+ - - id: revenue_top_10
+ type: metric
+ - id: percent_revenue_from_top_10_products
+ type: metric
+ - - id: revenue_top_10
+ type: metric
+ - id: top_10_customers
+ type: visualizationObject
+ - - id: revenue_top_10
+ type: metric
+ - id: top_10_products
+ type: visualizationObject
+ - - id: revenue_top_10
+ type: metric
+ - id: percent_revenue_from_top_10_customers
+ type: metric
+ - - id: revenue_top_10_percent
+ type: metric
+ - id: percent_revenue_from_top_10_percent_customers
+ type: metric
+ - - id: revenue_top_10_percent
+ type: metric
+ - id: percent_revenue_from_top_10_percent_products
+ type: metric
+ - - id: total_revenue
+ type: metric
+ - id: percent_revenue
+ type: metric
+ - - id: total_revenue
+ type: metric
+ - id: total_revenue-no_filters
+ type: metric
+ - - id: campaign_spend
+ type: visualizationObject
+ - id: campaign
+ type: analyticalDashboard
+ - - id: customers_trend
+ type: visualizationObject
+ - id: product_and_category
+ type: analyticalDashboard
+ - - id: percent_revenue_per_product_by_customer_and_category
+ type: visualizationObject
+ - id: product_and_category
+ type: analyticalDashboard
+ - - id: product_breakdown
+ type: visualizationObject
+ - id: product_and_category
+ type: analyticalDashboard
+ - - id: product_categories_pie_chart
+ type: visualizationObject
+ - id: product_and_category
+ type: analyticalDashboard
+ - - id: product_saleability
+ type: visualizationObject
+ - id: product_and_category
+ type: analyticalDashboard
+ - - id: revenue_per_usd_vs_spend_by_campaign
+ type: visualizationObject
+ - id: campaign
+ type: analyticalDashboard
+ - - id: revenue_trend
+ type: visualizationObject
+ - id: product_and_category
+ type: analyticalDashboard
+ - - id: top_10_products
+ type: visualizationObject
+ - id: dashboard_plugin
+ type: analyticalDashboard
+ - - id: top_10_products
+ type: visualizationObject
+ - id: product_and_category
+ type: analyticalDashboard
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml
index 61f3a0947..e8ac3ab6f 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml
@@ -20,7 +20,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -30,6 +30,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '275'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -56,36 +58,34 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
graph:
- edges:
- - - id: campaign_channel_id
- type: attribute
- - id: campaign_channels
- type: dataset
nodes:
- id: campaign_channel_id
- title: Campaign channel id
type: attribute
+ title: Campaign channel id
- id: campaign_channels
- title: Campaign channels
type: dataset
+ title: Campaign channels
+ edges:
+ - - id: campaign_channel_id
+ type: attribute
+ - id: campaign_channels
+ type: dataset
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml
index 556ec0f09..6992f6682 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: 05599814c548fa16
+ traceId: 2b1a486533180887
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/workspaces
@@ -97,7 +97,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -107,6 +107,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '167'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -132,31 +134,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- name: demo_testing
id: demo_testing
type: workspace
+ attributes:
+ name: demo_testing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_testing
- request:
@@ -173,7 +173,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -183,6 +183,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -208,72 +210,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -281,131 +278,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -431,47 +428,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -488,13 +493,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/dataSources?page=0&size=500
@@ -509,7 +509,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -519,6 +519,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '457'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -544,38 +546,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo-test-ds
+ type: dataSource
+ attributes:
+ url: jdbc:postgresql://localhost:5432/demo
username: demouser
enableCaching: false
name: demo-test-ds
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
schema: demo
- id: demo-test-ds
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources?page=0&size=500
next: http://localhost:3000/api/v1/entities/dataSources?page=1&size=500
@@ -860,7 +860,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -882,6 +882,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -893,22 +895,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -925,7 +927,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -935,6 +937,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '457'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -960,38 +964,36 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo-test-ds
+ type: dataSource
+ attributes:
+ url: jdbc:postgresql://localhost:5432/demo
username: demouser
enableCaching: false
name: demo-test-ds
type: POSTGRESQL
- url: jdbc:postgresql://localhost:5432/demo
schema: demo
- id: demo-test-ds
links:
self: http://localhost:3000/api/v1/entities/dataSources/demo-test-ds
- type: dataSource
links:
self: http://localhost:3000/api/v1/entities/dataSources?page=0&size=500
next: http://localhost:3000/api/v1/entities/dataSources?page=1&size=500
@@ -1276,7 +1278,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1298,6 +1300,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -1309,22 +1313,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -1341,7 +1345,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1351,6 +1355,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1376,72 +1382,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -1449,131 +1450,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -1599,47 +1600,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -1656,13 +1665,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500
@@ -1677,7 +1681,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1687,6 +1691,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1274'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1712,74 +1718,72 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
+ - id: demo_testing
type: workspace
- - attributes:
+ attributes:
name: demo_testing
- id: demo_testing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_testing
- type: workspace
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -1795,7 +1799,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1817,6 +1821,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -1828,21 +1834,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml
index 86667d248..98b4e8223 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: d5b2863e2d3b9b53
+ traceId: da2db2fb1c374801
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/workspaces
@@ -97,7 +97,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -107,6 +107,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '167'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -132,31 +134,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- name: demo_testing
id: demo_testing
type: workspace
+ attributes:
+ name: demo_testing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_testing
- request:
@@ -173,7 +173,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -183,6 +183,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -208,72 +210,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -281,131 +278,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -431,47 +428,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -488,13 +493,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaces/demo_testing/logicalModel
@@ -776,7 +776,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -798,6 +798,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -809,22 +811,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -841,7 +843,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -851,6 +853,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '27355'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -876,29 +880,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -939,10 +944,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -974,9 +978,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -1120,24 +1125,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -1155,10 +1147,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -1171,147 +1163,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -1369,9 +1360,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -1441,9 +1432,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -1516,9 +1507,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -1571,9 +1562,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -1624,9 +1615,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -1673,9 +1664,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -1744,9 +1735,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -1797,9 +1788,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -1892,9 +1883,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -1944,9 +1935,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -1979,9 +1970,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -2031,9 +2022,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -2095,9 +2086,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -2148,9 +2139,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -2201,8 +2192,19 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -2215,7 +2217,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -2225,6 +2227,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2250,24 +2254,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -2282,7 +2284,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -2292,6 +2294,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2317,33 +2321,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -3663,7 +3665,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -3685,6 +3687,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -3696,22 +3700,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -3728,7 +3732,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -3738,6 +3742,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '27355'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -3763,29 +3769,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -3826,10 +3833,9 @@ interactions:
type: IDashboardLayoutSection
type: IDashboardLayout
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -3861,9 +3867,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -4007,24 +4014,11 @@ interactions:
type: IDashboardLayoutSection
type: IDashboardLayout
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -4042,10 +4036,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
negativeSelection: true
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
attributeElements:
@@ -4058,147 +4052,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
negativeSelection: true
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -4256,9 +4249,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -4328,9 +4321,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -4403,9 +4396,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -4458,9 +4451,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -4511,9 +4504,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -4560,9 +4553,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -4631,9 +4624,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -4684,9 +4677,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -4779,9 +4772,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -4831,9 +4824,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -4866,9 +4859,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -4918,9 +4911,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -4982,9 +4975,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -5035,9 +5028,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -5088,8 +5081,19 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500
@@ -5104,7 +5108,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -5114,6 +5118,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1274'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -5139,74 +5145,72 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
+ - id: demo_testing
type: workspace
- - attributes:
+ attributes:
name: demo_testing
- id: demo_testing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_testing
- type: workspace
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -5222,7 +5226,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -5244,6 +5248,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -5255,21 +5261,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml
index dbbb579dc..e0919e92a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: efbf526de7d78921
+ traceId: 0b251001b8116a59
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/workspaces
@@ -97,7 +97,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -107,6 +107,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '167'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -132,31 +134,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- name: demo_testing
id: demo_testing
type: workspace
+ attributes:
+ name: demo_testing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_testing
- request:
@@ -173,7 +173,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -183,6 +183,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -208,72 +210,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -281,131 +278,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -431,47 +428,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -488,13 +493,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -507,7 +507,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -517,6 +517,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -542,24 +544,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -574,7 +574,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -584,6 +584,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -609,33 +611,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -919,7 +919,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -941,6 +941,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -952,22 +954,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -984,7 +986,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -994,6 +996,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1019,72 +1023,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -1092,131 +1091,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -1242,47 +1241,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -1299,13 +1306,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500
@@ -1320,7 +1322,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1330,6 +1332,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1274'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1355,74 +1359,72 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
+ - id: demo_testing
type: workspace
- - attributes:
+ attributes:
name: demo_testing
- id: demo_testing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_testing
- type: workspace
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -1438,7 +1440,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1460,6 +1462,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -1471,21 +1475,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml
index 10766d125..5d8fbba12 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: b2076bca90785c3e
+ traceId: cad2a25488d5a60e
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/workspaces
@@ -97,7 +97,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -107,6 +107,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '239'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -132,31 +134,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- name: test_put_declarative_analytics_model
id: test_put_declarative_analytics_model
type: workspace
+ attributes:
+ name: test_put_declarative_analytics_model
links:
self: http://localhost:3000/api/v1/entities/workspaces/test_put_declarative_analytics_model
- request:
@@ -173,7 +173,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -183,6 +183,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -208,72 +210,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -281,131 +278,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -431,47 +428,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -488,13 +493,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaces/test_put_declarative_analytics_model/logicalModel
@@ -776,7 +776,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -798,6 +798,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -809,22 +811,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -841,7 +843,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -851,6 +853,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '122'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -876,32 +880,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
+ dashboardPlugins: []
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaces/test_put_declarative_analytics_model/analyticsModel
@@ -922,7 +924,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -944,6 +946,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -955,22 +959,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -987,7 +991,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -997,6 +1001,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '122'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1022,32 +1028,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
+ dashboardPlugins: []
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500
@@ -1062,7 +1066,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1072,6 +1076,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1346'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1097,74 +1103,72 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
+ - id: test_put_declarative_analytics_model
type: workspace
- - attributes:
+ attributes:
name: test_put_declarative_analytics_model
- id: test_put_declarative_analytics_model
links:
self: http://localhost:3000/api/v1/entities/workspaces/test_put_declarative_analytics_model
- type: workspace
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -1180,7 +1184,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1202,6 +1206,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -1213,21 +1219,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml
index 04171da8a..fa3958f03 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: b111ba64ecefe59c
+ traceId: 9c4d14d6ff7b1303
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/workspaces
@@ -97,7 +97,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -107,6 +107,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '203'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -132,31 +134,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- name: test_put_declarative_ldm
id: test_put_declarative_ldm
type: workspace
+ attributes:
+ name: test_put_declarative_ldm
links:
self: http://localhost:3000/api/v1/entities/workspaces/test_put_declarative_ldm
- request:
@@ -173,7 +173,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -183,6 +183,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -208,72 +210,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -281,131 +278,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -431,47 +428,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -488,13 +493,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaces/test_put_declarative_ldm/logicalModel
@@ -776,7 +776,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -798,6 +798,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -809,22 +811,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -841,7 +843,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -851,6 +853,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -876,72 +880,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -949,131 +948,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -1099,47 +1098,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -1156,13 +1163,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500
@@ -1177,7 +1179,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1187,6 +1189,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1310'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1212,74 +1216,72 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
+ - id: test_put_declarative_ldm
type: workspace
- - attributes:
+ attributes:
name: test_put_declarative_ldm
- id: test_put_declarative_ldm
links:
self: http://localhost:3000/api/v1/entities/workspaces/test_put_declarative_ldm
- type: workspace
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -1295,7 +1297,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1317,6 +1319,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -1328,21 +1332,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml
index 53b07e9f3..dffdc0854 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '27355'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,29 +53,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -114,10 +117,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -149,9 +151,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -295,24 +298,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -330,10 +320,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -346,147 +336,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -544,9 +533,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -616,9 +605,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -691,9 +680,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -746,9 +735,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -799,9 +788,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -848,9 +837,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -919,9 +908,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -972,9 +961,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -1067,9 +1056,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -1119,9 +1108,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -1154,9 +1143,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -1206,9 +1195,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -1270,9 +1259,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -1323,9 +1312,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -1376,8 +1365,19 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -1390,7 +1390,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1400,6 +1400,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1425,24 +1427,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -1457,7 +1457,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1467,6 +1467,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1492,33 +1494,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -1535,7 +1535,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1545,6 +1545,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '27355'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1570,29 +1572,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -1633,10 +1636,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -1668,9 +1670,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -1814,24 +1817,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -1849,10 +1839,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -1865,147 +1855,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -2063,9 +2052,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -2135,9 +2124,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -2210,9 +2199,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -2265,9 +2254,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -2318,9 +2307,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -2367,9 +2356,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -2438,9 +2427,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -2491,9 +2480,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -2586,9 +2575,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -2638,9 +2627,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -2673,9 +2662,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -2725,9 +2714,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -2789,9 +2778,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -2842,9 +2831,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -2895,8 +2884,19 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -2909,7 +2909,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -2919,6 +2919,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2944,24 +2946,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -2976,7 +2976,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -2986,6 +2986,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -3011,32 +3013,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml
index 8528e682d..bc551b4d1 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,72 +53,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -124,131 +121,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -274,47 +271,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -331,13 +336,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -350,7 +350,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -360,6 +360,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -385,24 +387,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -417,7 +417,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -427,6 +427,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -452,33 +454,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -495,7 +495,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -505,6 +505,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '4826'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -530,72 +532,67 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -603,131 +600,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -753,47 +750,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -810,13 +815,8 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -829,7 +829,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -839,6 +839,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -864,24 +866,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -896,7 +896,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -906,6 +906,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -931,32 +933,30 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml
index 083be00a8..6fe5f1711 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,68 +53,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -130,7 +130,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -140,6 +140,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -165,31 +167,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: 19d961163bcc604f
+ traceId: e9a022c8fbe6e760
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/workspaces
@@ -216,7 +216,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -226,6 +226,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '143'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -251,31 +253,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- name: Test
id: test
type: workspace
+ attributes:
+ name: Test
links:
self: http://localhost:3000/api/v1/entities/workspaces/test
- request:
@@ -292,7 +292,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -302,6 +302,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1319'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -327,79 +329,77 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
+ - id: test
type: workspace
- - attributes:
+ attributes:
name: Test
- id: test
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/test
relationships:
parent:
data:
id: demo
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/test
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -417,7 +417,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -427,6 +427,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '379'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -452,43 +454,41 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: test
+ type: workspace
attributes:
name: Test
- id: test
relationships:
parent:
data:
id: demo
type: workspace
- type: workspace
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
- type: workspace
links:
self: http://localhost:3000/api/v1/entities/workspaces/test?include=workspaces
- request:
@@ -505,7 +505,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -515,6 +515,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1319'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -540,79 +542,77 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
+ - id: test
type: workspace
- - attributes:
+ attributes:
name: Test
- id: test
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/test
relationships:
parent:
data:
id: demo
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/test
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -628,7 +628,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -650,6 +650,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -661,22 +663,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -693,7 +695,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -703,6 +705,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -728,68 +732,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml
index b8b9be4e5..9607a7add 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '33785'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,70 +53,301 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- workspaceDataFilters:
- - columnName: wdf__region
- id: wdf__region
- title: Customer region
- workspace:
- id: demo
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - West
- id: region_west
- title: Region West
- workspace:
- id: demo_west
- type: workspace
- - columnName: wdf__state
- id: wdf__state
- title: Customer state
- workspace:
- id: demo_west
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - California
- id: region_west_california
- title: Region West California
- workspace:
- id: demo_west_california
- type: workspace
workspaces:
- - hierarchyPermissions:
- - assignee:
- id: demo2
- type: user
- name: MANAGE
- - assignee:
- id: demoGroup
- type: userGroup
- name: ANALYZE
- id: demo
+ - id: demo
+ name: Demo
model:
+ ldm:
+ datasets:
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: category
+ - id: type
+ title: Type
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
+ title: Budget
+ description: Budget
+ sourceColumn: budget
+ tags:
+ - Campaign channels
+ - id: spend
+ title: Spend
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaign channels
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_name
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: campaigns
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaigns
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
+ title: Customer id
+ description: Customer id
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_id
+ - id: customer_name
+ title: Customer name
+ description: Customer name
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_name
+ - id: region
+ title: Region
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
+ labels:
+ - id: geo__state__location
+ title: Location
+ description: Location
+ sourceColumn: geo__state__location
+ tags:
+ - Customers
+ tags:
+ - Customers
+ sourceColumn: state
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: customers
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Customers
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
+ title: Order id
+ description: Order id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_id
+ - id: order_line_id
+ title: Order line id
+ description: Order line id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_line_id
+ - id: order_status
+ title: Order status
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
+ facts:
+ - id: price
+ title: Price
+ description: Price
+ sourceColumn: price
+ tags:
+ - Order lines
+ - id: quantity
+ title: Quantity
+ description: Quantity
+ sourceColumn: quantity
+ tags:
+ - Order lines
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ - identifier:
+ id: customers
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - customer_id
+ - identifier:
+ id: date
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - date
+ - identifier:
+ id: products
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Order lines
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
+ title: Product id
+ description: Product id
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_id
+ - id: product_name
+ title: Product name
+ description: Product name
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_name
+ - id: products.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: products
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Products
+ dateInstances:
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
+ - MINUTE
+ - HOUR
+ - DAY
+ - WEEK
+ - MONTH
+ - QUARTER
+ - YEAR
+ - MINUTE_OF_HOUR
+ - HOUR_OF_DAY
+ - DAY_OF_WEEK
+ - DAY_OF_MONTH
+ - DAY_OF_YEAR
+ - WEEK_OF_YEAR
+ - MONTH_OF_YEAR
+ - QUARTER_OF_YEAR
+ tags:
+ - Date
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -155,10 +388,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -190,9 +422,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -337,24 +570,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -372,10 +592,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -388,147 +608,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -586,9 +805,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -658,9 +877,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -733,9 +952,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -788,9 +1007,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -841,9 +1060,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -890,9 +1109,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -961,9 +1180,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -1014,9 +1233,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -1109,9 +1328,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -1161,9 +1380,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -1196,9 +1415,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -1248,9 +1467,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -1312,9 +1531,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -1365,9 +1584,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -1418,54 +1637,219 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
+ permissions:
+ - name: ANALYZE
+ assignee:
+ id: demo2
+ type: user
+ - name: VIEW
+ assignee:
+ id: demoGroup
+ type: userGroup
+ hierarchyPermissions:
+ - name: MANAGE
+ assignee:
+ id: demo2
+ type: user
+ - name: ANALYZE
+ assignee:
+ id: demoGroup
+ type: userGroup
+ settings: []
+ - id: demo_west
+ name: Demo West
+ model:
+ ldm:
+ datasets: []
+ dateInstances: []
+ analytics:
+ analyticalDashboards: []
+ filterContexts: []
+ metrics: []
+ visualizationObjects: []
+ dashboardPlugins: []
+ parent:
+ id: demo
+ type: workspace
+ permissions: []
+ hierarchyPermissions: []
+ settings: []
+ - id: demo_west_california
+ name: Demo West California
+ model:
+ ldm:
+ datasets: []
+ dateInstances: []
+ analytics:
+ analyticalDashboards: []
+ filterContexts: []
+ metrics: []
+ visualizationObjects: []
+ dashboardPlugins: []
+ parent:
+ id: demo_west
+ type: workspace
+ permissions: []
+ hierarchyPermissions: []
+ settings: []
+ workspaceDataFilters:
+ - id: wdf__region
+ title: Customer region
+ columnName: wdf__region
+ workspaceDataFilterSettings:
+ - id: region_west
+ title: Region West
+ filterValues:
+ - West
+ workspace:
+ id: demo_west
+ type: workspace
+ workspace:
+ id: demo
+ type: workspace
+ - id: wdf__state
+ title: Customer state
+ columnName: wdf__state
+ workspaceDataFilterSettings:
+ - id: region_west_california
+ title: Region West California
+ filterValues:
+ - California
+ workspace:
+ id: demo_west_california
+ type: workspace
+ workspace:
+ id: demo_west
+ type: workspace
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/layout/workspaces
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '33785'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
+ workspaces:
+ - id: demo
+ name: Demo
+ model:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
- facts:
- - description: Budget
- id: budget
- sourceColumn: budget
+ description: Type
+ labels: []
tags:
- Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
title: Budget
- - description: Spend
- id: spend
- sourceColumn: spend
+ description: Budget
+ sourceColumn: budget
tags:
- Campaign channels
+ - id: spend
title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
references:
- identifier:
id: campaigns
@@ -1473,131 +1857,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -1623,47 +2007,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -1680,173 +2072,14 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- name: Demo
- permissions:
- - assignee:
- id: demo2
- type: user
- name: ANALYZE
- - assignee:
- id: demoGroup
- type: userGroup
- name: VIEW
- settings: []
- - hierarchyPermissions: []
- id: demo_west
- model:
- analytics:
- analyticalDashboards: []
- dashboardPlugins: []
- filterContexts: []
- metrics: []
- visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West
- parent:
- id: demo
- type: workspace
- permissions: []
- settings: []
- - hierarchyPermissions: []
- id: demo_west_california
- model:
- analytics:
- analyticalDashboards: []
- dashboardPlugins: []
- filterContexts: []
- metrics: []
- visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West California
- parent:
- id: demo_west
- type: workspace
- permissions: []
- settings: []
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/layout/workspaces
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: ''
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Server:
- - nginx
- Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-Frame-Options:
- - DENY
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1; mode=block
- body:
- string:
- workspaceDataFilters:
- - columnName: wdf__region
- id: wdf__region
- title: Customer region
- workspace:
- id: demo
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - West
- id: region_west
- title: Region West
- workspace:
- id: demo_west
- type: workspace
- - columnName: wdf__state
- id: wdf__state
- title: Customer state
- workspace:
- id: demo_west
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - California
- id: region_west_california
- title: Region West California
- workspace:
- id: demo_west_california
- type: workspace
- workspaces:
- - hierarchyPermissions:
- - assignee:
- id: demo2
- type: user
- name: MANAGE
- - assignee:
- id: demoGroup
- type: userGroup
- name: ANALYZE
- id: demo
- model:
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -1887,10 +2120,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -1922,9 +2154,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -2069,24 +2302,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -2104,10 +2324,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -2120,147 +2340,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -2318,9 +2537,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -2390,9 +2609,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -2465,9 +2684,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -2520,9 +2739,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -2573,9 +2792,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -2622,9 +2841,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -2693,9 +2912,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -2746,9 +2965,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -2841,9 +3060,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -2893,9 +3112,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -2928,9 +3147,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -2980,9 +3199,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -3044,9 +3263,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -3097,9 +3316,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -3150,319 +3369,100 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
- ldm:
- datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
- title: Campaign channel id
- - description: Category
- id: campaign_channels.category
- labels: []
- sourceColumn: category
- tags:
- - Campaign channels
- title: Category
- - description: Type
- id: type
- labels: []
- sourceColumn: type
- tags:
- - Campaign channels
- title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
- facts:
- - description: Budget
- id: budget
- sourceColumn: budget
- tags:
- - Campaign channels
- title: Budget
- - description: Spend
- id: spend
- sourceColumn: spend
- tags:
- - Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- tags:
- - Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
- labels: []
- sourceColumn: campaign_id
- tags:
- - Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
- labels: []
- sourceColumn: campaign_name
- tags:
- - Campaigns
- title: Campaign name
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaigns
- type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
- tags:
- - Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
- title: Customer id
- - description: Customer name
- id: customer_name
- labels: []
- sourceColumn: customer_name
- tags:
- - Customers
- title: Customer name
- - description: Region
- id: region
- labels: []
- sourceColumn: region
- tags:
- - Customers
- title: Region
- - description: State
- id: state
- labels:
- - description: Location
- id: geo__state__location
- sourceColumn: geo__state__location
- tags:
- - Customers
- title: Location
- sourceColumn: state
- tags:
- - Customers
- title: State
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: customers
- type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
- tags:
- - Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
- title: Order id
- - description: Order line id
- id: order_line_id
- labels: []
- sourceColumn: order_line_id
- tags:
- - Order lines
- title: Order line id
- - description: Order status
- id: order_status
- labels: []
- sourceColumn: order_status
- tags:
- - Order lines
- title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
- facts:
- - description: Price
- id: price
- sourceColumn: price
- tags:
- - Order lines
- title: Price
- - description: Quantity
- id: quantity
- sourceColumn: quantity
- tags:
- - Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- - identifier:
- id: customers
- type: dataset
- multivalue: false
- sourceColumns:
- - customer_id
- - identifier:
- id: date
- type: dataset
- multivalue: false
- sourceColumns:
- - date
- - identifier:
- id: products
- type: dataset
- multivalue: false
- sourceColumns:
- - product_id
- tags:
- - Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
- title: Product id
- - description: Product name
- id: product_name
- labels: []
- sourceColumn: product_name
- tags:
- - Products
- title: Product name
- - description: Category
- id: products.category
- labels: []
- sourceColumn: category
- tags:
- - Products
- title: Category
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: products
- type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
- tags:
- - Products
- title: Products
- dateInstances:
- - description: ''
- granularities:
- - MINUTE
- - HOUR
- - DAY
- - WEEK
- - MONTH
- - QUARTER
- - YEAR
- - MINUTE_OF_HOUR
- - HOUR_OF_DAY
- - DAY_OF_WEEK
- - DAY_OF_MONTH
- - DAY_OF_YEAR
- - WEEK_OF_YEAR
- - MONTH_OF_YEAR
- - QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
- tags:
- - Date
- title: Date
- name: Demo
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
permissions:
- - assignee:
+ - name: ANALYZE
+ assignee:
id: demo2
type: user
- name: ANALYZE
- - assignee:
+ - name: VIEW
+ assignee:
+ id: demoGroup
+ type: userGroup
+ hierarchyPermissions:
+ - name: MANAGE
+ assignee:
+ id: demo2
+ type: user
+ - name: ANALYZE
+ assignee:
id: demoGroup
type: userGroup
- name: VIEW
settings: []
- - hierarchyPermissions: []
- id: demo_west
+ - id: demo_west
+ name: Demo West
model:
+ ldm:
+ datasets: []
+ dateInstances: []
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West
+ dashboardPlugins: []
parent:
id: demo
type: workspace
permissions: []
+ hierarchyPermissions: []
settings: []
- - hierarchyPermissions: []
- id: demo_west_california
+ - id: demo_west_california
+ name: Demo West California
model:
+ ldm:
+ datasets: []
+ dateInstances: []
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West California
+ dashboardPlugins: []
parent:
id: demo_west
type: workspace
permissions: []
+ hierarchyPermissions: []
settings: []
+ workspaceDataFilters:
+ - id: wdf__region
+ title: Customer region
+ columnName: wdf__region
+ workspaceDataFilterSettings:
+ - id: region_west
+ title: Region West
+ filterValues:
+ - West
+ workspace:
+ id: demo_west
+ type: workspace
+ workspace:
+ id: demo
+ type: workspace
+ - id: wdf__state
+ title: Customer state
+ columnName: wdf__state
+ workspaceDataFilterSettings:
+ - id: region_west_california
+ title: Region West California
+ filterValues:
+ - California
+ workspace:
+ id: demo_west_california
+ type: workspace
+ workspace:
+ id: demo_west
+ type: workspace
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_non_existing_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_non_existing_workspace.yaml
index d2fdc6232..ec9e25484 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_non_existing_workspace.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_non_existing_workspace.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,68 +53,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -130,7 +130,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -140,6 +140,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -165,68 +167,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -244,7 +244,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -254,6 +254,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -279,68 +281,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_parent_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_parent_workspace.yaml
index d2fdc6232..ec9e25484 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_parent_workspace.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_parent_workspace.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,68 +53,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -130,7 +130,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -140,6 +140,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -165,68 +167,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -244,7 +244,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -254,6 +254,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -279,68 +281,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml
index c2049e7fc..0fe77fa9e 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '447'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,43 +53,41 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: demo_west_california
+ type: workspace
attributes:
name: Demo West California
- id: demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
included:
- - attributes:
+ - id: demo_west
+ type: workspace
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california?include=workspaces
- request:
@@ -104,7 +104,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -114,6 +114,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -139,68 +141,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west_california
type: workspace
- - attributes:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west
relationships:
parent:
data:
id: demo
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -218,7 +218,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -228,6 +228,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -253,68 +255,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west_california
type: workspace
- - attributes:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west
relationships:
parent:
data:
id: demo
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
@@ -330,7 +330,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -352,6 +352,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/vnd.gooddata.api+json
Date: *id001
Expires:
- '0'
@@ -363,22 +365,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -395,7 +397,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -405,6 +407,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '708'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -430,51 +434,49 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west
relationships:
parent:
data:
id: demo
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
- type: workspace
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
@@ -492,7 +494,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -502,6 +504,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -527,31 +531,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: 228c79e3ab833892
+ traceId: 09902a2df0617f43
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/workspaces
@@ -578,7 +580,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -588,6 +590,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '191'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -613,31 +617,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- name: Demo West California
id: demo_west_california
type: workspace
+ attributes:
+ name: Demo West California
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
- request:
@@ -654,7 +656,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -664,6 +666,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '1115'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -689,68 +693,66 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/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:
+ attributes:
name: Demo West California
- id: demo_west_california
- links:
- self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
relationships:
parent:
data:
id: demo_west
type: workspace
- type: workspace
+ links:
+ self: http://localhost:3000/api/v1/entities/workspaces/demo_west_california
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
+ - id: demo_west
type: workspace
- - attributes:
+ attributes:
name: Demo West
- id: demo_west
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west
- type: workspace
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
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml
index f8a9cbbc6..e97e74e98 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '32180'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,29 +53,297 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
+ ldm:
+ datasets:
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: category
+ - id: type
+ title: Type
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
+ title: Budget
+ description: Budget
+ sourceColumn: budget
+ tags:
+ - Campaign channels
+ - id: spend
+ title: Spend
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaign channels
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_name
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: campaigns
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaigns
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
+ title: Customer id
+ description: Customer id
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_id
+ - id: customer_name
+ title: Customer name
+ description: Customer name
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_name
+ - id: region
+ title: Region
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
+ labels:
+ - id: geo__state__location
+ title: Location
+ description: Location
+ sourceColumn: geo__state__location
+ tags:
+ - Customers
+ tags:
+ - Customers
+ sourceColumn: state
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: customers
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Customers
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
+ title: Order id
+ description: Order id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_id
+ - id: order_line_id
+ title: Order line id
+ description: Order line id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_line_id
+ - id: order_status
+ title: Order status
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
+ facts:
+ - id: price
+ title: Price
+ description: Price
+ sourceColumn: price
+ tags:
+ - Order lines
+ - id: quantity
+ title: Quantity
+ description: Quantity
+ sourceColumn: quantity
+ tags:
+ - Order lines
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ - identifier:
+ id: customers
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - customer_id
+ - identifier:
+ id: date
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - date
+ - identifier:
+ id: products
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Order lines
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
+ title: Product id
+ description: Product id
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_id
+ - id: product_name
+ title: Product name
+ description: Product name
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_name
+ - id: products.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: products
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Products
+ dateInstances:
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
+ - MINUTE
+ - HOUR
+ - DAY
+ - WEEK
+ - MONTH
+ - QUARTER
+ - YEAR
+ - MINUTE_OF_HOUR
+ - HOUR_OF_DAY
+ - DAY_OF_WEEK
+ - DAY_OF_MONTH
+ - DAY_OF_YEAR
+ - WEEK_OF_YEAR
+ - MONTH_OF_YEAR
+ - QUARTER_OF_YEAR
+ tags:
+ - Date
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -114,10 +384,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -149,9 +418,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -295,24 +565,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -330,10 +587,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -346,147 +603,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -544,9 +800,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -616,9 +872,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -691,9 +947,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -746,9 +1002,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -799,9 +1055,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -848,9 +1104,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -919,9 +1175,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -972,9 +1228,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -1067,9 +1323,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -1119,9 +1375,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -1154,9 +1410,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -1206,9 +1462,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -1270,9 +1526,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -1323,9 +1579,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -1376,54 +1632,131 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
+ - request:
+ method: GET
+ uri: http://localhost:3000/api/v1/layout/workspaces/demo
+ body: null
+ headers:
+ Accept:
+ - application/json
+ X-GDC-VALIDATE-RELATIONS:
+ - 'true'
+ X-Requested-With:
+ - XMLHttpRequest
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Expose-Headers:
+ - Content-Disposition, Content-Length, Content-Range, Set-Cookie
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '32180'
+ Content-Security-Policy:
+ - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
+ ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
+ code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
+ ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
+ privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
+ fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
+ data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
+ frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
+ blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
+ *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
+ media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
+ Date: *id001
+ Expires:
+ - '0'
+ GoodData-Deployment:
+ - aio
+ Permission-Policy:
+ - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
+ 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
+ 'none';
+ Pragma:
+ - no-cache
+ Referrer-Policy:
+ - no-referrer
+ Server:
+ - nginx
+ Set-Cookie:
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
+ Vary:
+ - Origin
+ - Access-Control-Request-Method
+ - Access-Control-Request-Headers
+ X-Content-Type-Options:
+ - nosniff
+ X-GDC-TRACE-ID: *id001
+ X-XSS-Protection:
+ - 1 ; mode=block
+ body:
+ string:
ldm:
datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
title: Campaign channel id
- - description: Category
- id: campaign_channels.category
+ description: Campaign channel id
labels: []
- sourceColumn: category
tags:
- Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
title: Category
- - description: Type
- id: type
+ description: Category
labels: []
- sourceColumn: type
tags:
- Campaign channels
+ sourceColumn: category
+ - id: type
title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
facts:
- - description: Budget
- id: budget
+ - id: budget
+ title: Budget
+ description: Budget
sourceColumn: budget
tags:
- Campaign channels
- title: Budget
- - description: Spend
- id: spend
+ - id: spend
+ title: Spend
+ description: Spend
sourceColumn: spend
tags:
- Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
references:
- identifier:
id: campaigns
@@ -1431,131 +1764,131 @@ interactions:
multivalue: false
sourceColumns:
- campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
labels: []
- sourceColumn: campaign_id
tags:
- Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
labels: []
- sourceColumn: campaign_name
tags:
- Campaigns
- title: Campaign name
+ sourceColumn: campaign_name
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: campaigns
+ dataSourceId: demo-test-ds
type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
tags:
- Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
title: Customer id
- - description: Customer name
- id: customer_name
+ description: Customer id
labels: []
- sourceColumn: customer_name
tags:
- Customers
+ sourceColumn: customer_id
+ - id: customer_name
title: Customer name
- - description: Region
- id: region
+ description: Customer name
labels: []
- sourceColumn: region
tags:
- Customers
+ sourceColumn: customer_name
+ - id: region
title: Region
- - description: State
- id: state
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
labels:
- - description: Location
- id: geo__state__location
+ - id: geo__state__location
+ title: Location
+ description: Location
sourceColumn: geo__state__location
tags:
- Customers
- title: Location
- sourceColumn: state
tags:
- Customers
- title: State
+ sourceColumn: state
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: customers
+ dataSourceId: demo-test-ds
type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
tags:
- Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
title: Order id
- - description: Order line id
- id: order_line_id
+ description: Order id
labels: []
- sourceColumn: order_line_id
tags:
- Order lines
+ sourceColumn: order_id
+ - id: order_line_id
title: Order line id
- - description: Order status
- id: order_status
+ description: Order line id
labels: []
- sourceColumn: order_status
tags:
- Order lines
+ sourceColumn: order_line_id
+ - id: order_status
title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
facts:
- - description: Price
- id: price
+ - id: price
+ title: Price
+ description: Price
sourceColumn: price
tags:
- Order lines
- title: Price
- - description: Quantity
- id: quantity
+ - id: quantity
+ title: Quantity
+ description: Quantity
sourceColumn: quantity
tags:
- Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
references:
- identifier:
id: campaigns
@@ -1581,47 +1914,55 @@ interactions:
multivalue: false
sourceColumns:
- product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
tags:
- Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
title: Product id
- - description: Product name
- id: product_name
+ description: Product id
labels: []
- sourceColumn: product_name
tags:
- Products
+ sourceColumn: product_id
+ - id: product_name
title: Product name
- - description: Category
- id: products.category
+ description: Product name
labels: []
- sourceColumn: category
tags:
- Products
+ sourceColumn: product_name
+ - id: products.category
title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
dataSourceTableId:
- dataSourceId: demo-test-ds
id: products
+ dataSourceId: demo-test-ds
type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
tags:
- Products
- title: Products
dateInstances:
- - description: ''
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
granularities:
- MINUTE
- HOUR
@@ -1638,85 +1979,14 @@ interactions:
- WEEK_OF_YEAR
- MONTH_OF_YEAR
- QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
tags:
- Date
- title: Date
- - request:
- method: GET
- uri: http://localhost:3000/api/v1/layout/workspaces/demo
- body: null
- headers:
- Accept:
- - application/json
- X-GDC-VALIDATE-RELATIONS:
- - 'true'
- X-Requested-With:
- - XMLHttpRequest
- response:
- status:
- code: 200
- message: ''
- headers:
- Access-Control-Allow-Credentials:
- - 'true'
- Access-Control-Expose-Headers:
- - Content-Disposition, Content-Length, Content-Range, Set-Cookie
- Cache-Control:
- - no-cache, no-store, max-age=0, must-revalidate
- Connection:
- - keep-alive
- Content-Security-Policy:
- - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
- ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
- code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src
- ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net
- privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline''
- fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self''
- data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com;
- frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src
- blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
- *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
- media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
- Content-Type:
- - application/json
- Date: *id001
- Expires:
- - '0'
- GoodData-Deployment:
- - aio
- Permission-Policy:
- - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera
- 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment
- 'none';
- Pragma:
- - no-cache
- Server:
- - nginx
- Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
- Vary:
- - Origin
- - Access-Control-Request-Method
- - Access-Control-Request-Headers
- X-Content-Type-Options:
- - nosniff
- X-Frame-Options:
- - DENY
- X-GDC-TRACE-ID: *id001
- X-XSS-Protection:
- - 1; mode=block
- body:
- string:
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -1757,10 +2027,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -1792,9 +2061,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -1938,24 +2208,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -1973,10 +2230,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -1989,147 +2246,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -2187,9 +2443,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -2259,9 +2515,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -2334,9 +2590,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -2389,9 +2645,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -2442,9 +2698,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -2491,9 +2747,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -2562,9 +2818,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -2615,9 +2871,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -2710,9 +2966,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -2762,9 +3018,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -2797,9 +3053,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -2849,9 +3105,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -2913,9 +3169,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -2966,9 +3222,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -3019,272 +3275,16 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
- ldm:
- datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
- title: Campaign channel id
- - description: Category
- id: campaign_channels.category
- labels: []
- sourceColumn: category
- tags:
- - Campaign channels
- title: Category
- - description: Type
- id: type
- labels: []
- sourceColumn: type
- tags:
- - Campaign channels
- title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
- facts:
- - description: Budget
- id: budget
- sourceColumn: budget
- tags:
- - Campaign channels
- title: Budget
- - description: Spend
- id: spend
- sourceColumn: spend
- tags:
- - Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- tags:
- - Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
- labels: []
- sourceColumn: campaign_id
- tags:
- - Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
- labels: []
- sourceColumn: campaign_name
- tags:
- - Campaigns
- title: Campaign name
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaigns
- type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
- tags:
- - Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
- title: Customer id
- - description: Customer name
- id: customer_name
- labels: []
- sourceColumn: customer_name
- tags:
- - Customers
- title: Customer name
- - description: Region
- id: region
- labels: []
- sourceColumn: region
- tags:
- - Customers
- title: Region
- - description: State
- id: state
- labels:
- - description: Location
- id: geo__state__location
- sourceColumn: geo__state__location
- tags:
- - Customers
- title: Location
- sourceColumn: state
- tags:
- - Customers
- title: State
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: customers
- type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
- tags:
- - Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
- title: Order id
- - description: Order line id
- id: order_line_id
- labels: []
- sourceColumn: order_line_id
- tags:
- - Order lines
- title: Order line id
- - description: Order status
- id: order_status
- labels: []
- sourceColumn: order_status
- tags:
- - Order lines
- title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
- facts:
- - description: Price
- id: price
- sourceColumn: price
- tags:
- - Order lines
- title: Price
- - description: Quantity
- id: quantity
- sourceColumn: quantity
- tags:
- - Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- - identifier:
- id: customers
- type: dataset
- multivalue: false
- sourceColumns:
- - customer_id
- - identifier:
- id: date
- type: dataset
- multivalue: false
- sourceColumns:
- - date
- - identifier:
- id: products
- type: dataset
- multivalue: false
- sourceColumns:
- - product_id
- tags:
- - Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
- title: Product id
- - description: Product name
- id: product_name
- labels: []
- sourceColumn: product_name
- tags:
- - Products
- title: Product name
- - description: Category
- id: products.category
- labels: []
- sourceColumn: category
- tags:
- - Products
- title: Category
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: products
- type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
- tags:
- - Products
- title: Products
- dateInstances:
- - description: ''
- granularities:
- - MINUTE
- - HOUR
- - DAY
- - WEEK
- - MONTH
- - QUARTER
- - YEAR
- - MINUTE_OF_HOUR
- - HOUR_OF_DAY
- - DAY_OF_WEEK
- - DAY_OF_MONTH
- - DAY_OF_YEAR
- - WEEK_OF_YEAR
- - MONTH_OF_YEAR
- - QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
- tags:
- - Date
- title: Date
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml
index 4180f67be..6a8175885 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,55 +53,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
workspaceDataFilters:
- - columnName: wdf__region
- id: wdf__region
+ - id: wdf__region
title: Customer region
- workspace:
- id: demo
- type: workspace
+ columnName: wdf__region
workspaceDataFilterSettings:
- - filterValues:
- - West
- id: region_west
+ - id: region_west
title: Region West
+ filterValues:
+ - West
workspace:
id: demo_west
type: workspace
- - columnName: wdf__state
- id: wdf__state
- title: Customer state
workspace:
- id: demo_west
+ id: demo
type: workspace
+ - id: wdf__state
+ title: Customer state
+ columnName: wdf__state
workspaceDataFilterSettings:
- - filterValues:
- - California
- id: region_west_california
+ - id: region_west_california
title: Region West California
+ filterValues:
+ - California
workspace:
id: demo_west_california
type: workspace
+ workspace:
+ id: demo_west
+ type: workspace
- request:
method: GET
uri: http://localhost:3000/api/v1/layout/workspaceDataFilters
@@ -114,7 +114,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -124,6 +124,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -149,52 +151,50 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
workspaceDataFilters:
- - columnName: wdf__region
- id: wdf__region
+ - id: wdf__region
title: Customer region
- workspace:
- id: demo
- type: workspace
+ columnName: wdf__region
workspaceDataFilterSettings:
- - filterValues:
- - West
- id: region_west
+ - id: region_west
title: Region West
+ filterValues:
+ - West
workspace:
id: demo_west
type: workspace
- - columnName: wdf__state
- id: wdf__state
- title: Customer state
workspace:
- id: demo_west
+ id: demo
type: workspace
+ - id: wdf__state
+ title: Customer state
+ columnName: wdf__state
workspaceDataFilterSettings:
- - filterValues:
- - California
- id: region_west_california
+ - id: region_west_california
title: Region West California
+ filterValues:
+ - California
workspace:
id: demo_west_california
type: workspace
+ workspace:
+ id: demo_west
+ type: workspace
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml
index e10255605..206891e8d 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '33785'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,70 +53,301 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- workspaceDataFilters:
- - columnName: wdf__region
- id: wdf__region
- title: Customer region
- workspace:
- id: demo
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - West
- id: region_west
- title: Region West
- workspace:
- id: demo_west
- type: workspace
- - columnName: wdf__state
- id: wdf__state
- title: Customer state
- workspace:
- id: demo_west
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - California
- id: region_west_california
- title: Region West California
- workspace:
- id: demo_west_california
- type: workspace
workspaces:
- - hierarchyPermissions:
- - assignee:
- id: demo2
- type: user
- name: MANAGE
- - assignee:
- id: demoGroup
- type: userGroup
- name: ANALYZE
- id: demo
+ - id: demo
+ name: Demo
model:
+ ldm:
+ datasets:
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: category
+ - id: type
+ title: Type
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
+ title: Budget
+ description: Budget
+ sourceColumn: budget
+ tags:
+ - Campaign channels
+ - id: spend
+ title: Spend
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaign channels
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_name
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: campaigns
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaigns
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
+ title: Customer id
+ description: Customer id
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_id
+ - id: customer_name
+ title: Customer name
+ description: Customer name
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_name
+ - id: region
+ title: Region
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
+ labels:
+ - id: geo__state__location
+ title: Location
+ description: Location
+ sourceColumn: geo__state__location
+ tags:
+ - Customers
+ tags:
+ - Customers
+ sourceColumn: state
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: customers
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Customers
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
+ title: Order id
+ description: Order id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_id
+ - id: order_line_id
+ title: Order line id
+ description: Order line id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_line_id
+ - id: order_status
+ title: Order status
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
+ facts:
+ - id: price
+ title: Price
+ description: Price
+ sourceColumn: price
+ tags:
+ - Order lines
+ - id: quantity
+ title: Quantity
+ description: Quantity
+ sourceColumn: quantity
+ tags:
+ - Order lines
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ - identifier:
+ id: customers
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - customer_id
+ - identifier:
+ id: date
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - date
+ - identifier:
+ id: products
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Order lines
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
+ title: Product id
+ description: Product id
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_id
+ - id: product_name
+ title: Product name
+ description: Product name
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_name
+ - id: products.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: products
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Products
+ dateInstances:
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
+ - MINUTE
+ - HOUR
+ - DAY
+ - WEEK
+ - MONTH
+ - QUARTER
+ - YEAR
+ - MINUTE_OF_HOUR
+ - HOUR_OF_DAY
+ - DAY_OF_WEEK
+ - DAY_OF_MONTH
+ - DAY_OF_YEAR
+ - WEEK_OF_YEAR
+ - MONTH_OF_YEAR
+ - QUARTER_OF_YEAR
+ tags:
+ - Date
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -155,10 +388,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -190,9 +422,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -337,24 +570,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -372,10 +592,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -388,147 +608,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -586,9 +805,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -658,9 +877,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -733,9 +952,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -788,9 +1007,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -841,9 +1060,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -890,9 +1109,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -961,9 +1180,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -1014,9 +1233,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -1109,9 +1328,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -1161,9 +1380,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -1196,9 +1415,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -1248,9 +1467,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -1312,9 +1531,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -1365,9 +1584,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -1418,319 +1637,100 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
- ldm:
- datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
- title: Campaign channel id
- - description: Category
- id: campaign_channels.category
- labels: []
- sourceColumn: category
- tags:
- - Campaign channels
- title: Category
- - description: Type
- id: type
- labels: []
- sourceColumn: type
- tags:
- - Campaign channels
- title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
- facts:
- - description: Budget
- id: budget
- sourceColumn: budget
- tags:
- - Campaign channels
- title: Budget
- - description: Spend
- id: spend
- sourceColumn: spend
- tags:
- - Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- tags:
- - Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
- labels: []
- sourceColumn: campaign_id
- tags:
- - Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
- labels: []
- sourceColumn: campaign_name
- tags:
- - Campaigns
- title: Campaign name
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaigns
- type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
- tags:
- - Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
- title: Customer id
- - description: Customer name
- id: customer_name
- labels: []
- sourceColumn: customer_name
- tags:
- - Customers
- title: Customer name
- - description: Region
- id: region
- labels: []
- sourceColumn: region
- tags:
- - Customers
- title: Region
- - description: State
- id: state
- labels:
- - description: Location
- id: geo__state__location
- sourceColumn: geo__state__location
- tags:
- - Customers
- title: Location
- sourceColumn: state
- tags:
- - Customers
- title: State
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: customers
- type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
- tags:
- - Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
- title: Order id
- - description: Order line id
- id: order_line_id
- labels: []
- sourceColumn: order_line_id
- tags:
- - Order lines
- title: Order line id
- - description: Order status
- id: order_status
- labels: []
- sourceColumn: order_status
- tags:
- - Order lines
- title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
- facts:
- - description: Price
- id: price
- sourceColumn: price
- tags:
- - Order lines
- title: Price
- - description: Quantity
- id: quantity
- sourceColumn: quantity
- tags:
- - Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- - identifier:
- id: customers
- type: dataset
- multivalue: false
- sourceColumns:
- - customer_id
- - identifier:
- id: date
- type: dataset
- multivalue: false
- sourceColumns:
- - date
- - identifier:
- id: products
- type: dataset
- multivalue: false
- sourceColumns:
- - product_id
- tags:
- - Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
- title: Product id
- - description: Product name
- id: product_name
- labels: []
- sourceColumn: product_name
- tags:
- - Products
- title: Product name
- - description: Category
- id: products.category
- labels: []
- sourceColumn: category
- tags:
- - Products
- title: Category
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: products
- type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
- tags:
- - Products
- title: Products
- dateInstances:
- - description: ''
- granularities:
- - MINUTE
- - HOUR
- - DAY
- - WEEK
- - MONTH
- - QUARTER
- - YEAR
- - MINUTE_OF_HOUR
- - HOUR_OF_DAY
- - DAY_OF_WEEK
- - DAY_OF_MONTH
- - DAY_OF_YEAR
- - WEEK_OF_YEAR
- - MONTH_OF_YEAR
- - QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
- tags:
- - Date
- title: Date
- name: Demo
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
permissions:
- - assignee:
+ - name: ANALYZE
+ assignee:
+ id: demo2
+ type: user
+ - name: VIEW
+ assignee:
+ id: demoGroup
+ type: userGroup
+ hierarchyPermissions:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: ANALYZE
- - assignee:
+ - name: ANALYZE
+ assignee:
id: demoGroup
type: userGroup
- name: VIEW
settings: []
- - hierarchyPermissions: []
- id: demo_west
+ - id: demo_west
+ name: Demo West
model:
+ ldm:
+ datasets: []
+ dateInstances: []
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West
+ dashboardPlugins: []
parent:
id: demo
type: workspace
permissions: []
+ hierarchyPermissions: []
settings: []
- - hierarchyPermissions: []
- id: demo_west_california
+ - id: demo_west_california
+ name: Demo West California
model:
+ ldm:
+ datasets: []
+ dateInstances: []
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West California
+ dashboardPlugins: []
parent:
id: demo_west
type: workspace
permissions: []
+ hierarchyPermissions: []
settings: []
+ workspaceDataFilters:
+ - id: wdf__region
+ title: Customer region
+ columnName: wdf__region
+ workspaceDataFilterSettings:
+ - id: region_west
+ title: Region West
+ filterValues:
+ - West
+ workspace:
+ id: demo_west
+ type: workspace
+ workspace:
+ id: demo
+ type: workspace
+ - id: wdf__state
+ title: Customer state
+ columnName: wdf__state
+ workspaceDataFilterSettings:
+ - id: region_west_california
+ title: Region West California
+ filterValues:
+ - California
+ workspace:
+ id: demo_west_california
+ type: workspace
+ workspace:
+ id: demo_west
+ type: workspace
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml
index e10255605..206891e8d 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '33785'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,70 +53,301 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- workspaceDataFilters:
- - columnName: wdf__region
- id: wdf__region
- title: Customer region
- workspace:
- id: demo
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - West
- id: region_west
- title: Region West
- workspace:
- id: demo_west
- type: workspace
- - columnName: wdf__state
- id: wdf__state
- title: Customer state
- workspace:
- id: demo_west
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - California
- id: region_west_california
- title: Region West California
- workspace:
- id: demo_west_california
- type: workspace
workspaces:
- - hierarchyPermissions:
- - assignee:
- id: demo2
- type: user
- name: MANAGE
- - assignee:
- id: demoGroup
- type: userGroup
- name: ANALYZE
- id: demo
+ - id: demo
+ name: Demo
model:
+ ldm:
+ datasets:
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: category
+ - id: type
+ title: Type
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
+ title: Budget
+ description: Budget
+ sourceColumn: budget
+ tags:
+ - Campaign channels
+ - id: spend
+ title: Spend
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaign channels
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_name
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: campaigns
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaigns
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
+ title: Customer id
+ description: Customer id
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_id
+ - id: customer_name
+ title: Customer name
+ description: Customer name
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_name
+ - id: region
+ title: Region
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
+ labels:
+ - id: geo__state__location
+ title: Location
+ description: Location
+ sourceColumn: geo__state__location
+ tags:
+ - Customers
+ tags:
+ - Customers
+ sourceColumn: state
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: customers
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Customers
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
+ title: Order id
+ description: Order id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_id
+ - id: order_line_id
+ title: Order line id
+ description: Order line id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_line_id
+ - id: order_status
+ title: Order status
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
+ facts:
+ - id: price
+ title: Price
+ description: Price
+ sourceColumn: price
+ tags:
+ - Order lines
+ - id: quantity
+ title: Quantity
+ description: Quantity
+ sourceColumn: quantity
+ tags:
+ - Order lines
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ - identifier:
+ id: customers
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - customer_id
+ - identifier:
+ id: date
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - date
+ - identifier:
+ id: products
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Order lines
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
+ title: Product id
+ description: Product id
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_id
+ - id: product_name
+ title: Product name
+ description: Product name
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_name
+ - id: products.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: products
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Products
+ dateInstances:
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
+ - MINUTE
+ - HOUR
+ - DAY
+ - WEEK
+ - MONTH
+ - QUARTER
+ - YEAR
+ - MINUTE_OF_HOUR
+ - HOUR_OF_DAY
+ - DAY_OF_WEEK
+ - DAY_OF_MONTH
+ - DAY_OF_YEAR
+ - WEEK_OF_YEAR
+ - MONTH_OF_YEAR
+ - QUARTER_OF_YEAR
+ tags:
+ - Date
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -155,10 +388,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -190,9 +422,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -337,24 +570,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -372,10 +592,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -388,147 +608,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -586,9 +805,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -658,9 +877,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -733,9 +952,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -788,9 +1007,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -841,9 +1060,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -890,9 +1109,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -961,9 +1180,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -1014,9 +1233,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -1109,9 +1328,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -1161,9 +1380,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -1196,9 +1415,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -1248,9 +1467,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -1312,9 +1531,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -1365,9 +1584,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -1418,319 +1637,100 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
- ldm:
- datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
- title: Campaign channel id
- - description: Category
- id: campaign_channels.category
- labels: []
- sourceColumn: category
- tags:
- - Campaign channels
- title: Category
- - description: Type
- id: type
- labels: []
- sourceColumn: type
- tags:
- - Campaign channels
- title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
- facts:
- - description: Budget
- id: budget
- sourceColumn: budget
- tags:
- - Campaign channels
- title: Budget
- - description: Spend
- id: spend
- sourceColumn: spend
- tags:
- - Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- tags:
- - Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
- labels: []
- sourceColumn: campaign_id
- tags:
- - Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
- labels: []
- sourceColumn: campaign_name
- tags:
- - Campaigns
- title: Campaign name
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaigns
- type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
- tags:
- - Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
- title: Customer id
- - description: Customer name
- id: customer_name
- labels: []
- sourceColumn: customer_name
- tags:
- - Customers
- title: Customer name
- - description: Region
- id: region
- labels: []
- sourceColumn: region
- tags:
- - Customers
- title: Region
- - description: State
- id: state
- labels:
- - description: Location
- id: geo__state__location
- sourceColumn: geo__state__location
- tags:
- - Customers
- title: Location
- sourceColumn: state
- tags:
- - Customers
- title: State
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: customers
- type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
- tags:
- - Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
- title: Order id
- - description: Order line id
- id: order_line_id
- labels: []
- sourceColumn: order_line_id
- tags:
- - Order lines
- title: Order line id
- - description: Order status
- id: order_status
- labels: []
- sourceColumn: order_status
- tags:
- - Order lines
- title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
- facts:
- - description: Price
- id: price
- sourceColumn: price
- tags:
- - Order lines
- title: Price
- - description: Quantity
- id: quantity
- sourceColumn: quantity
- tags:
- - Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- - identifier:
- id: customers
- type: dataset
- multivalue: false
- sourceColumns:
- - customer_id
- - identifier:
- id: date
- type: dataset
- multivalue: false
- sourceColumns:
- - date
- - identifier:
- id: products
- type: dataset
- multivalue: false
- sourceColumns:
- - product_id
- tags:
- - Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
- title: Product id
- - description: Product name
- id: product_name
- labels: []
- sourceColumn: product_name
- tags:
- - Products
- title: Product name
- - description: Category
- id: products.category
- labels: []
- sourceColumn: category
- tags:
- - Products
- title: Category
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: products
- type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
- tags:
- - Products
- title: Products
- dateInstances:
- - description: ''
- granularities:
- - MINUTE
- - HOUR
- - DAY
- - WEEK
- - MONTH
- - QUARTER
- - YEAR
- - MINUTE_OF_HOUR
- - HOUR_OF_DAY
- - DAY_OF_WEEK
- - DAY_OF_MONTH
- - DAY_OF_YEAR
- - WEEK_OF_YEAR
- - MONTH_OF_YEAR
- - QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
- tags:
- - Date
- title: Date
- name: Demo
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
permissions:
- - assignee:
+ - name: ANALYZE
+ assignee:
+ id: demo2
+ type: user
+ - name: VIEW
+ assignee:
+ id: demoGroup
+ type: userGroup
+ hierarchyPermissions:
+ - name: MANAGE
+ assignee:
id: demo2
type: user
- name: ANALYZE
- - assignee:
+ - name: ANALYZE
+ assignee:
id: demoGroup
type: userGroup
- name: VIEW
settings: []
- - hierarchyPermissions: []
- id: demo_west
+ - id: demo_west
+ name: Demo West
model:
+ ldm:
+ datasets: []
+ dateInstances: []
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West
+ dashboardPlugins: []
parent:
id: demo
type: workspace
permissions: []
+ hierarchyPermissions: []
settings: []
- - hierarchyPermissions: []
- id: demo_west_california
+ - id: demo_west_california
+ name: Demo West California
model:
+ ldm:
+ datasets: []
+ dateInstances: []
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West California
+ dashboardPlugins: []
parent:
id: demo_west
type: workspace
permissions: []
+ hierarchyPermissions: []
settings: []
+ workspaceDataFilters:
+ - id: wdf__region
+ title: Customer region
+ columnName: wdf__region
+ workspaceDataFilterSettings:
+ - id: region_west
+ title: Region West
+ filterValues:
+ - West
+ workspace:
+ id: demo_west
+ type: workspace
+ workspace:
+ id: demo
+ type: workspace
+ - id: wdf__state
+ title: Customer state
+ columnName: wdf__state
+ workspaceDataFilterSettings:
+ - id: region_west_california
+ title: Region West California
+ filterValues:
+ - California
+ workspace:
+ id: demo_west_california
+ type: workspace
+ workspace:
+ id: demo_west
+ type: workspace
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_workspace.yaml
index fd9f07c09..a9560c73a 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_workspace.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_workspace.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '162'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- name: Demo
id: demo
type: workspace
+ attributes:
+ name: Demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo?include=workspaces
- request:
@@ -92,7 +92,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -102,6 +102,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '394'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -127,42 +129,40 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: demo_west
+ type: workspace
attributes:
name: Demo West
- id: demo_west
relationships:
parent:
data:
id: demo
type: workspace
- type: workspace
included:
- - attributes:
+ - id: demo
+ type: workspace
+ attributes:
name: Demo
- id: demo
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo
- type: workspace
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_west?include=workspaces
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml
index 0487aaff1..3a0d3d663 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '32180'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,29 +53,297 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
+ ldm:
+ datasets:
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: category
+ - id: type
+ title: Type
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
+ title: Budget
+ description: Budget
+ sourceColumn: budget
+ tags:
+ - Campaign channels
+ - id: spend
+ title: Spend
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaign channels
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_name
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: campaigns
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaigns
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
+ title: Customer id
+ description: Customer id
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_id
+ - id: customer_name
+ title: Customer name
+ description: Customer name
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_name
+ - id: region
+ title: Region
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
+ labels:
+ - id: geo__state__location
+ title: Location
+ description: Location
+ sourceColumn: geo__state__location
+ tags:
+ - Customers
+ tags:
+ - Customers
+ sourceColumn: state
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: customers
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Customers
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
+ title: Order id
+ description: Order id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_id
+ - id: order_line_id
+ title: Order line id
+ description: Order line id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_line_id
+ - id: order_status
+ title: Order status
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
+ facts:
+ - id: price
+ title: Price
+ description: Price
+ sourceColumn: price
+ tags:
+ - Order lines
+ - id: quantity
+ title: Quantity
+ description: Quantity
+ sourceColumn: quantity
+ tags:
+ - Order lines
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ - identifier:
+ id: customers
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - customer_id
+ - identifier:
+ id: date
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - date
+ - identifier:
+ id: products
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Order lines
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
+ title: Product id
+ description: Product id
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_id
+ - id: product_name
+ title: Product name
+ description: Product name
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_name
+ - id: products.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: products
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Products
+ dateInstances:
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
+ - MINUTE
+ - HOUR
+ - DAY
+ - WEEK
+ - MONTH
+ - QUARTER
+ - YEAR
+ - MINUTE_OF_HOUR
+ - HOUR_OF_DAY
+ - DAY_OF_WEEK
+ - DAY_OF_MONTH
+ - DAY_OF_YEAR
+ - WEEK_OF_YEAR
+ - MONTH_OF_YEAR
+ - QUARTER_OF_YEAR
+ tags:
+ - Date
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -114,10 +384,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -149,9 +418,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -295,24 +565,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -330,10 +587,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -346,147 +603,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -544,9 +800,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -616,9 +872,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -691,9 +947,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -746,9 +1002,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -799,9 +1055,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -848,9 +1104,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -919,9 +1175,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -972,9 +1228,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -1067,9 +1323,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -1119,9 +1375,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -1154,9 +1410,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -1187,464 +1443,208 @@ interactions:
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
- - 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
- - 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
- - 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
- ldm:
- datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
- title: Campaign channel id
- - description: Category
- id: campaign_channels.category
- labels: []
- sourceColumn: category
- tags:
- - Campaign channels
- title: Category
- - description: Type
- id: type
- labels: []
- sourceColumn: type
- tags:
- - Campaign channels
- title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
- facts:
- - description: Budget
- id: budget
- sourceColumn: budget
- tags:
- - Campaign channels
- title: Budget
- - description: Spend
- id: spend
- sourceColumn: spend
- tags:
- - Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- tags:
- - Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
- labels: []
- sourceColumn: campaign_id
- tags:
- - Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
- labels: []
- sourceColumn: campaign_name
- tags:
- - Campaigns
- title: Campaign name
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaigns
- type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
- tags:
- - Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
- title: Customer id
- - description: Customer name
- id: customer_name
- labels: []
- sourceColumn: customer_name
- tags:
- - Customers
- title: Customer name
- - description: Region
- id: region
- labels: []
- sourceColumn: region
- tags:
- - Customers
- title: Region
- - description: State
- id: state
- labels:
- - description: Location
- id: geo__state__location
- sourceColumn: geo__state__location
- tags:
- - Customers
- title: Location
- sourceColumn: state
- tags:
- - Customers
- title: State
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: customers
- type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
- tags:
- - Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
- title: Order id
- - description: Order line id
- id: order_line_id
- labels: []
- sourceColumn: order_line_id
- tags:
- - Order lines
- title: Order line id
- - description: Order status
- id: order_status
- labels: []
- sourceColumn: order_status
- tags:
- - Order lines
- title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
- facts:
- - description: Price
- id: price
- sourceColumn: price
- tags:
- - Order lines
- title: Price
- - description: Quantity
- id: quantity
- sourceColumn: quantity
- tags:
- - Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- - identifier:
- id: customers
- type: dataset
- multivalue: false
- sourceColumns:
- - customer_id
- - identifier:
- id: date
- type: dataset
- multivalue: false
- sourceColumns:
- - date
- - identifier:
- id: products
- type: dataset
- multivalue: false
- sourceColumns:
- - product_id
- tags:
- - Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
- title: Product id
- - description: Product name
- id: product_name
- labels: []
- sourceColumn: product_name
- tags:
- - Products
- title: Product name
- - description: Category
- id: products.category
- labels: []
- sourceColumn: category
- tags:
- - Products
- title: Category
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: products
- type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
- tags:
- - Products
- title: Products
- dateInstances:
- - description: ''
- granularities:
- - MINUTE
- - HOUR
- - DAY
- - WEEK
- - MONTH
- - QUARTER
- - YEAR
- - MINUTE_OF_HOUR
- - HOUR_OF_DAY
- - DAY_OF_WEEK
- - DAY_OF_MONTH
- - DAY_OF_YEAR
- - WEEK_OF_YEAR
- - MONTH_OF_YEAR
- - QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
- tags:
- - Date
- title: Date
+ 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_trend
+ title: Revenue Trend
+ 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: top_10_customers
+ title: Top 10 Customers
+ 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_products
+ title: Top 10 Products
+ 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
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaces/demo
@@ -1659,7 +1659,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1681,6 +1681,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -1692,22 +1694,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -1724,7 +1726,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1734,6 +1736,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '163'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1759,35 +1763,33 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
+ ldm:
+ datasets: []
+ dateInstances: []
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
+ dashboardPlugins: []
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -1800,7 +1802,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1810,6 +1812,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1835,24 +1839,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -1867,7 +1869,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1877,6 +1879,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -1902,33 +1906,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -3515,7 +3517,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -3537,6 +3539,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -3548,22 +3552,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -3580,7 +3584,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -3590,6 +3594,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '32180'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -3615,29 +3621,297 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
+ ldm:
+ datasets:
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: category
+ - id: type
+ title: Type
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
+ title: Budget
+ description: Budget
+ sourceColumn: budget
+ tags:
+ - Campaign channels
+ - id: spend
+ title: Spend
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaign channels
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_name
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: campaigns
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaigns
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
+ title: Customer id
+ description: Customer id
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_id
+ - id: customer_name
+ title: Customer name
+ description: Customer name
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_name
+ - id: region
+ title: Region
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
+ labels:
+ - id: geo__state__location
+ title: Location
+ description: Location
+ sourceColumn: geo__state__location
+ tags:
+ - Customers
+ tags:
+ - Customers
+ sourceColumn: state
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: customers
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Customers
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
+ title: Order id
+ description: Order id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_id
+ - id: order_line_id
+ title: Order line id
+ description: Order line id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_line_id
+ - id: order_status
+ title: Order status
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
+ facts:
+ - id: price
+ title: Price
+ description: Price
+ sourceColumn: price
+ tags:
+ - Order lines
+ - id: quantity
+ title: Quantity
+ description: Quantity
+ sourceColumn: quantity
+ tags:
+ - Order lines
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ - identifier:
+ id: customers
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - customer_id
+ - identifier:
+ id: date
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - date
+ - identifier:
+ id: products
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Order lines
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
+ title: Product id
+ description: Product id
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_id
+ - id: product_name
+ title: Product name
+ description: Product name
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_name
+ - id: products.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: products
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Products
+ dateInstances:
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
+ - MINUTE
+ - HOUR
+ - DAY
+ - WEEK
+ - MONTH
+ - QUARTER
+ - YEAR
+ - MINUTE_OF_HOUR
+ - HOUR_OF_DAY
+ - DAY_OF_WEEK
+ - DAY_OF_MONTH
+ - DAY_OF_YEAR
+ - WEEK_OF_YEAR
+ - MONTH_OF_YEAR
+ - QUARTER_OF_YEAR
+ tags:
+ - Date
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -3678,10 +3952,9 @@ interactions:
type: IDashboardLayoutSection
type: IDashboardLayout
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -3713,9 +3986,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -3859,24 +4133,11 @@ interactions:
type: IDashboardLayoutSection
type: IDashboardLayout
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -3894,10 +4155,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
negativeSelection: true
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
attributeElements:
@@ -3910,147 +4171,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
negativeSelection: true
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -4108,9 +4368,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -4180,9 +4440,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -4255,9 +4515,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -4310,9 +4570,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -4363,9 +4623,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -4412,9 +4672,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -4483,9 +4743,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -4536,9 +4796,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -4631,9 +4891,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -4683,9 +4943,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -4718,9 +4978,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -4770,9 +5030,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -4834,9 +5094,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -4887,9 +5147,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -4940,275 +5200,19 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
- ldm:
- datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
- title: Campaign channel id
- - description: Category
- id: campaign_channels.category
- labels: []
- sourceColumn: category
- tags:
- - Campaign channels
- title: Category
- - description: Type
- id: type
- labels: []
- sourceColumn: type
- tags:
- - Campaign channels
- title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
- facts:
- - description: Budget
- id: budget
- sourceColumn: budget
- tags:
- - Campaign channels
- title: Budget
- - description: Spend
- id: spend
- sourceColumn: spend
- tags:
- - Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- tags:
- - Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
- labels: []
- sourceColumn: campaign_id
- tags:
- - Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
- labels: []
- sourceColumn: campaign_name
- tags:
- - Campaigns
- title: Campaign name
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaigns
- type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
- tags:
- - Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
- title: Customer id
- - description: Customer name
- id: customer_name
- labels: []
- sourceColumn: customer_name
- tags:
- - Customers
- title: Customer name
- - description: Region
- id: region
- labels: []
- sourceColumn: region
- tags:
- - Customers
- title: Region
- - description: State
- id: state
- labels:
- - description: Location
- id: geo__state__location
- sourceColumn: geo__state__location
- tags:
- - Customers
- title: Location
- sourceColumn: state
- tags:
- - Customers
- title: State
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: customers
- type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
- tags:
- - Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
- title: Order id
- - description: Order line id
- id: order_line_id
- labels: []
- sourceColumn: order_line_id
- tags:
- - Order lines
- title: Order line id
- - description: Order status
- id: order_status
- labels: []
- sourceColumn: order_status
- tags:
- - Order lines
- title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
- facts:
- - description: Price
- id: price
- sourceColumn: price
- tags:
- - Order lines
- title: Price
- - description: Quantity
- id: quantity
- sourceColumn: quantity
- tags:
- - Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- - identifier:
- id: customers
- type: dataset
- multivalue: false
- sourceColumns:
- - customer_id
- - identifier:
- id: date
- type: dataset
- multivalue: false
- sourceColumns:
- - date
- - identifier:
- id: products
- type: dataset
- multivalue: false
- sourceColumns:
- - product_id
- tags:
- - Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
- title: Product id
- - description: Product name
- id: product_name
- labels: []
- sourceColumn: product_name
- tags:
- - Products
- title: Product name
- - description: Category
- id: products.category
- labels: []
- sourceColumn: category
- tags:
- - Products
- title: Category
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: products
- type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
- tags:
- - Products
- title: Products
- dateInstances:
- - description: ''
- granularities:
- - MINUTE
- - HOUR
- - DAY
- - WEEK
- - MONTH
- - QUARTER
- - YEAR
- - MINUTE_OF_HOUR
- - HOUR_OF_DAY
- - DAY_OF_WEEK
- - DAY_OF_MONTH
- - DAY_OF_YEAR
- - WEEK_OF_YEAR
- - MONTH_OF_YEAR
- - QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
- tags:
- - Date
- title: Date
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaces/demo
@@ -6793,7 +6797,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -6815,6 +6819,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -6826,21 +6832,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml
index 3aee8eb64..030a04b21 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,55 +53,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
workspaceDataFilters:
- - columnName: wdf__region
- id: wdf__region
+ - id: wdf__region
title: Customer region
- workspace:
- id: demo
- type: workspace
+ columnName: wdf__region
workspaceDataFilterSettings:
- - filterValues:
- - West
- id: region_west
+ - id: region_west
title: Region West
+ filterValues:
+ - West
workspace:
id: demo_west
type: workspace
- - columnName: wdf__state
- id: wdf__state
- title: Customer state
workspace:
- id: demo_west
+ id: demo
type: workspace
+ - id: wdf__state
+ title: Customer state
+ columnName: wdf__state
workspaceDataFilterSettings:
- - filterValues:
- - California
- id: region_west_california
+ - id: region_west_california
title: Region West California
+ filterValues:
+ - California
workspace:
id: demo_west_california
type: workspace
+ workspace:
+ id: demo_west
+ type: workspace
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaceDataFilters
@@ -115,7 +115,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -137,6 +137,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -148,22 +150,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -180,7 +182,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -190,6 +192,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '27'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -215,24 +219,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
workspaceDataFilters: []
@@ -248,7 +250,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -258,6 +260,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -283,24 +287,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -315,7 +317,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -325,6 +327,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -350,33 +354,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -422,7 +424,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -444,6 +446,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -455,22 +459,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -487,7 +491,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -497,6 +501,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '603'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -522,55 +528,53 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
workspaceDataFilters:
- - columnName: wdf__region
- id: wdf__region
+ - id: wdf__region
title: Customer region
- workspace:
- id: demo
- type: workspace
+ columnName: wdf__region
workspaceDataFilterSettings:
- - filterValues:
- - West
- id: region_west
+ - id: region_west
title: Region West
+ filterValues:
+ - West
workspace:
id: demo_west
type: workspace
- - columnName: wdf__state
- id: wdf__state
- title: Customer state
workspace:
- id: demo_west
+ id: demo
type: workspace
+ - id: wdf__state
+ title: Customer state
+ columnName: wdf__state
workspaceDataFilterSettings:
- - filterValues:
- - California
- id: region_west_california
+ - id: region_west_california
title: Region West California
+ filterValues:
+ - California
workspace:
id: demo_west_california
type: workspace
+ workspace:
+ id: demo_west
+ type: workspace
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaceDataFilters
@@ -614,7 +618,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -636,6 +640,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -647,21 +653,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml
index 0c00d0d10..2c18b0e85 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml
@@ -17,7 +17,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -39,6 +39,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: &id001
- PLACEHOLDER
Expires:
@@ -51,22 +53,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -83,7 +85,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -93,6 +95,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '43'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -118,28 +122,26 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- workspaceDataFilters: []
workspaces: []
+ workspaceDataFilters: []
- request:
method: GET
uri: http://localhost:3000/api/v1/entities/organization
@@ -152,7 +154,7 @@ interactions:
response:
status:
code: 302
- message: ''
+ message: Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -162,6 +164,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '0'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -187,24 +191,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -219,7 +221,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -229,6 +231,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '255'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -254,33 +258,31 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
+ id: default
+ type: organization
attributes:
name: Default Organization
hostname: localhost
- oauthClientId: a27c4ec3-98ad-496e-b456-b71c50dad4e0
- id: default
- type: organization
+ oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e
links:
self: http://localhost:3000/api/v1/entities/admin/organizations/default
- request:
@@ -1959,7 +1961,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -1981,6 +1983,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -1992,22 +1996,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -2024,7 +2028,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -2034,6 +2038,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '33785'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -2059,310 +2065,528 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- workspaceDataFilters:
- - columnName: wdf__region
- id: wdf__region
- title: Customer region
- workspace:
- id: demo
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - West
- id: region_west
- title: Region West
- workspace:
- id: demo_west
- type: workspace
- - columnName: wdf__state
- id: wdf__state
- title: Customer state
- workspace:
- id: demo_west
- type: workspace
- workspaceDataFilterSettings:
- - filterValues:
- - California
- id: region_west_california
- title: Region West California
- workspace:
- id: demo_west_california
- type: workspace
workspaces:
- - hierarchyPermissions:
- - assignee:
- id: demo2
- type: user
- name: MANAGE
- - assignee:
- id: demoGroup
- type: userGroup
- name: ANALYZE
- id: demo
+ - id: demo
+ name: Demo
model:
- analytics:
- analyticalDashboards:
- - content:
- filterContextRef:
- identifier:
- id: campaign_name_filter
- type: filterContext
- layout:
- sections:
- - items:
- - size:
- xl:
- gridWidth: 6
- type: IDashboardLayoutItem
- widget:
- description: ''
- drills: []
- ignoreDashboardFilters: []
- insight:
- identifier:
- id: campaign_spend
- type: visualizationObject
- properties: {}
- title: Campaign Spend
- type: insight
- - size:
- xl:
- gridWidth: 6
- type: IDashboardLayoutItem
- widget:
- description: ''
- drills: []
- ignoreDashboardFilters: []
- insight:
- identifier:
- id: revenue_per_usd_vs_spend_by_campaign
- type: visualizationObject
- properties: {}
- title: Revenue per $ vs Spend by Campaign
- type: insight
- type: IDashboardLayoutSection
- type: IDashboardLayout
- version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
- filterContextRef:
- identifier:
- id: campaign_name_filter
- type: filterContext
- layout:
- sections:
- - items:
- - size:
- xl:
- gridWidth: 12
- type: IDashboardLayoutItem
- widget:
- description: ''
- drills: []
- ignoreDashboardFilters: []
- insight:
- identifier:
- id: top_10_products
- type: visualizationObject
- properties: {}
- title: DHO simple
- type: insight
- type: IDashboardLayoutSection
- type: IDashboardLayout
- plugins:
- - plugin:
- identifier:
- id: dashboard_plugin_1
- type: dashboardPlugin
- version: '2'
- version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
- filterContextRef:
- identifier:
- id: region_filter
- type: filterContext
- layout:
- sections:
- - items:
- - size:
- xl:
- gridWidth: 6
- type: IDashboardLayoutItem
- widget:
- dateDataSet:
- identifier:
- id: date
- type: dataset
- description: ''
- drills: []
- ignoreDashboardFilters: []
- insight:
- identifier:
- id: top_10_products
- type: visualizationObject
- properties: {}
- title: Top 10 Products
- type: insight
- - size:
- xl:
- gridWidth: 6
- type: IDashboardLayoutItem
- widget:
- dateDataSet:
- identifier:
- id: date
- type: dataset
- description: ''
- drills: []
- ignoreDashboardFilters: []
- insight:
- identifier:
- id: revenue_trend
- type: visualizationObject
- properties: {}
- title: Revenue Trend
- 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
- properties: {}
- title: Customers Trend
- 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
- 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: product_breakdown
- type: visualizationObject
- properties: {}
- title: Product Breakdown
- 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
- properties: {}
- title: Product Saleability
- 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
- properties: {}
- title: '% Revenue per Product by Customer and
- Category'
- type: insight
- type: IDashboardLayoutSection
+ ldm:
+ datasets:
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: category
+ - id: type
+ title: Type
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
+ title: Budget
+ description: Budget
+ sourceColumn: budget
+ tags:
+ - Campaign channels
+ - id: spend
+ title: Spend
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaign channels
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_name
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: campaigns
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaigns
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
+ title: Customer id
+ description: Customer id
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_id
+ - id: customer_name
+ title: Customer name
+ description: Customer name
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_name
+ - id: region
+ title: Region
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
+ labels:
+ - id: geo__state__location
+ title: Location
+ description: Location
+ sourceColumn: geo__state__location
+ tags:
+ - Customers
+ tags:
+ - Customers
+ sourceColumn: state
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: customers
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Customers
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
+ title: Order id
+ description: Order id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_id
+ - id: order_line_id
+ title: Order line id
+ description: Order line id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_line_id
+ - id: order_status
+ title: Order status
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
+ facts:
+ - id: price
+ title: Price
+ description: Price
+ sourceColumn: price
+ tags:
+ - Order lines
+ - id: quantity
+ title: Quantity
+ description: Quantity
+ sourceColumn: quantity
+ tags:
+ - Order lines
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ - identifier:
+ id: customers
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - customer_id
+ - identifier:
+ id: date
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - date
+ - identifier:
+ id: products
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Order lines
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
+ title: Product id
+ description: Product id
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_id
+ - id: product_name
+ title: Product name
+ description: Product name
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_name
+ - id: products.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: products
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Products
+ dateInstances:
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
+ - MINUTE
+ - HOUR
+ - DAY
+ - WEEK
+ - MONTH
+ - QUARTER
+ - YEAR
+ - MINUTE_OF_HOUR
+ - HOUR_OF_DAY
+ - DAY_OF_WEEK
+ - DAY_OF_MONTH
+ - DAY_OF_YEAR
+ - WEEK_OF_YEAR
+ - MONTH_OF_YEAR
+ - QUARTER_OF_YEAR
+ tags:
+ - Date
+ analytics:
+ analyticalDashboards:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
+ filterContextRef:
+ identifier:
+ id: campaign_name_filter
+ type: filterContext
+ layout:
+ sections:
+ - items:
+ - size:
+ xl:
+ gridWidth: 6
+ type: IDashboardLayoutItem
+ widget:
+ description: ''
+ drills: []
+ ignoreDashboardFilters: []
+ insight:
+ identifier:
+ id: campaign_spend
+ type: visualizationObject
+ properties: {}
+ title: Campaign Spend
+ type: insight
+ - size:
+ xl:
+ gridWidth: 6
+ type: IDashboardLayoutItem
+ widget:
+ description: ''
+ drills: []
+ ignoreDashboardFilters: []
+ insight:
+ identifier:
+ id: revenue_per_usd_vs_spend_by_campaign
+ type: visualizationObject
+ properties: {}
+ title: Revenue per $ vs Spend by Campaign
+ type: insight
+ type: IDashboardLayoutSection
type: IDashboardLayout
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
+ filterContextRef:
+ identifier:
+ id: campaign_name_filter
+ type: filterContext
+ layout:
+ sections:
+ - items:
+ - size:
+ xl:
+ gridWidth: 12
+ type: IDashboardLayoutItem
+ widget:
+ description: ''
+ drills: []
+ ignoreDashboardFilters: []
+ insight:
+ identifier:
+ id: top_10_products
+ type: visualizationObject
+ properties: {}
+ title: DHO simple
+ type: insight
+ type: IDashboardLayoutSection
+ type: IDashboardLayout
+ plugins:
+ - plugin:
+ identifier:
+ id: dashboard_plugin_1
+ type: dashboardPlugin
+ version: '2'
version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
+ filterContextRef:
+ identifier:
+ id: region_filter
+ type: filterContext
+ layout:
+ sections:
+ - items:
+ - size:
+ xl:
+ gridWidth: 6
+ type: IDashboardLayoutItem
+ widget:
+ dateDataSet:
+ identifier:
+ id: date
+ type: dataset
+ description: ''
+ drills: []
+ ignoreDashboardFilters: []
+ insight:
+ identifier:
+ id: top_10_products
+ type: visualizationObject
+ properties: {}
+ title: Top 10 Products
+ type: insight
+ - size:
+ xl:
+ gridWidth: 6
+ type: IDashboardLayoutItem
+ widget:
+ dateDataSet:
+ identifier:
+ id: date
+ type: dataset
+ description: ''
+ drills: []
+ ignoreDashboardFilters: []
+ insight:
+ identifier:
+ id: revenue_trend
+ type: visualizationObject
+ properties: {}
+ title: Revenue Trend
+ 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
+ properties: {}
+ title: Customers Trend
+ 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
+ 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: product_breakdown
+ type: visualizationObject
+ properties: {}
+ title: Product Breakdown
+ 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
+ properties: {}
+ title: Product Saleability
+ 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
+ properties: {}
+ title: '% Revenue per Product by Customer and
+ Category'
+ type: insight
+ type: IDashboardLayoutSection
+ type: IDashboardLayout
version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -2380,10 +2604,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
negativeSelection: true
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
attributeElements:
@@ -2396,147 +2620,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
negativeSelection: true
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category}
IN ("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -2594,9 +2817,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -2666,9 +2889,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -2741,9 +2964,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -2796,9 +3019,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -2849,9 +3072,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -2898,9 +3121,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -2969,9 +3192,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -3022,9 +3245,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -3117,9 +3340,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -3169,242 +3392,30 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - 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
+ - id: revenue_by_product
title: Revenue by Product
- - 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
- - content:
+ content:
buckets:
- items:
- measure:
definition:
measureDefinition:
- computeRatio: false
filters: []
item:
identifier:
id: revenue
type: metric
- localIdentifier: 60c854969a9c4c278ab596d99c222e92
+ localIdentifier: 4ae3401bdbba4938afe983df4ba04e1c
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
- - 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
- - 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
+ localIdentifier: measures
- items:
- attribute:
displayForm:
identifier:
- id: products.category
+ id: product_name
type: label
- localIdentifier: fe513cef1c6244a5ac21c5f49c56b108
- localIdentifier: stack
+ localIdentifier: 1c8ba72dbfc84ddd913bf81dc355c427
+ localIdentifier: view
filters:
- negativeAttributeFilter:
displayForm:
@@ -3413,335 +3424,328 @@ interactions:
type: label
notIn:
values: []
- - negativeAttributeFilter:
- displayForm:
- identifier:
- id: products.category
- type: label
- notIn:
- values: []
- properties:
- controls:
- legend:
- position: bottom
+ properties: {}
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
- ldm:
- datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
- title: Campaign channel id
- - description: Category
- id: campaign_channels.category
- labels: []
- sourceColumn: category
- tags:
- - Campaign channels
- title: Category
- - description: Type
- id: type
- labels: []
- sourceColumn: type
- tags:
- - Campaign channels
- title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
- facts:
- - description: Budget
- id: budget
- sourceColumn: budget
- tags:
- - Campaign channels
- title: Budget
- - description: Spend
- id: spend
- sourceColumn: spend
- tags:
- - Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- tags:
- - Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
- labels: []
- sourceColumn: campaign_id
- tags:
- - Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
- labels: []
- sourceColumn: campaign_name
- tags:
- - Campaigns
- title: Campaign name
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaigns
- type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
- tags:
- - Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
- title: Customer id
- - description: Customer name
- id: customer_name
- labels: []
- sourceColumn: customer_name
- tags:
- - Customers
- title: Customer name
- - description: Region
- id: region
- labels: []
- sourceColumn: region
- tags:
- - Customers
- title: Region
- - description: State
- id: state
- labels:
- - description: Location
- id: geo__state__location
- sourceColumn: geo__state__location
- tags:
- - Customers
- title: Location
- sourceColumn: state
- tags:
- - Customers
- title: State
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: customers
- type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
- tags:
- - Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
- title: Order id
- - description: Order line id
- id: order_line_id
- labels: []
- sourceColumn: order_line_id
- tags:
- - Order lines
- title: Order line id
- - description: Order status
- id: order_status
- labels: []
- sourceColumn: order_status
- tags:
- - Order lines
- title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
- facts:
- - description: Price
- id: price
- sourceColumn: price
- tags:
- - Order lines
- title: Price
- - description: Quantity
- id: quantity
- sourceColumn: quantity
- tags:
- - Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- - identifier:
- id: customers
- type: dataset
- multivalue: false
- sourceColumns:
- - customer_id
- - identifier:
- id: date
- type: dataset
- multivalue: false
- sourceColumns:
- - date
- - identifier:
- id: products
- type: dataset
- multivalue: false
- sourceColumns:
- - product_id
- tags:
- - Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
- title: Product id
- - description: Product name
- id: product_name
- labels: []
- sourceColumn: product_name
- tags:
- - Products
- title: Product name
- - description: Category
- id: products.category
- labels: []
- sourceColumn: category
- tags:
- - Products
- title: Category
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: products
- type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
- tags:
- - Products
- title: Products
- dateInstances:
- - description: ''
- granularities:
- - MINUTE
- - HOUR
- - DAY
- - WEEK
- - MONTH
- - QUARTER
- - YEAR
- - MINUTE_OF_HOUR
- - HOUR_OF_DAY
- - DAY_OF_WEEK
- - DAY_OF_MONTH
- - DAY_OF_YEAR
- - WEEK_OF_YEAR
- - MONTH_OF_YEAR
- - QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
- tags:
- - Date
- title: Date
- name: Demo
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ 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_trend
+ title: Revenue Trend
+ 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: top_10_customers
+ title: Top 10 Customers
+ 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_products
+ title: Top 10 Products
+ 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
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
permissions:
- - assignee:
+ - name: ANALYZE
+ assignee:
id: demo2
type: user
- name: ANALYZE
- - assignee:
+ - name: VIEW
+ assignee:
+ id: demoGroup
+ type: userGroup
+ hierarchyPermissions:
+ - name: MANAGE
+ assignee:
+ id: demo2
+ type: user
+ - name: ANALYZE
+ assignee:
id: demoGroup
type: userGroup
- name: VIEW
settings: []
- - hierarchyPermissions: []
- id: demo_west
+ - id: demo_west
+ name: Demo West
model:
+ ldm:
+ datasets: []
+ dateInstances: []
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West
+ dashboardPlugins: []
parent:
id: demo
type: workspace
permissions: []
+ hierarchyPermissions: []
settings: []
- - hierarchyPermissions: []
- id: demo_west_california
+ - id: demo_west_california
+ name: Demo West California
model:
+ ldm:
+ datasets: []
+ dateInstances: []
analytics:
analyticalDashboards: []
- dashboardPlugins: []
filterContexts: []
metrics: []
visualizationObjects: []
- ldm:
- datasets: []
- dateInstances: []
- name: Demo West California
+ dashboardPlugins: []
parent:
id: demo_west
type: workspace
permissions: []
+ hierarchyPermissions: []
settings: []
+ workspaceDataFilters:
+ - id: wdf__region
+ title: Customer region
+ columnName: wdf__region
+ workspaceDataFilterSettings:
+ - id: region_west
+ title: Region West
+ filterValues:
+ - West
+ workspace:
+ id: demo_west
+ type: workspace
+ workspace:
+ id: demo
+ type: workspace
+ - id: wdf__state
+ title: Customer state
+ columnName: wdf__state
+ workspaceDataFilterSettings:
+ - id: region_west_california
+ title: Region West California
+ filterValues:
+ - California
+ workspace:
+ id: demo_west_california
+ type: workspace
+ workspace:
+ id: demo_west
+ type: workspace
- request:
method: PUT
uri: http://localhost:3000/api/v1/layout/workspaces
@@ -5418,7 +5422,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -5440,6 +5444,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -5451,21 +5457,21 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml
index 60e57f1ff..a36d7f9f6 100644
--- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml
+++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml
@@ -15,7 +15,7 @@ interactions:
response:
status:
code: 404
- message: ''
+ message: Not Found
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -25,6 +25,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '156'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -51,31 +53,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
detail: The requested endpoint does not exist or you do not have permission
to access it.
status: 404
title: Not Found
- traceId: a87e7330fe5706c9
+ traceId: fedf38747e24dec0
- request:
method: POST
uri: http://localhost:3000/api/v1/entities/workspaces
@@ -97,7 +97,7 @@ interactions:
response:
status:
code: 201
- message: ''
+ message: Created
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -107,6 +107,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '167'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -132,31 +134,29 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
data:
- attributes:
- name: demo_testing
id: demo_testing
type: workspace
+ attributes:
+ name: demo_testing
links:
self: http://localhost:3000/api/v1/entities/workspaces/demo_testing
- request:
@@ -173,7 +173,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -183,6 +183,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '32180'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -208,29 +210,297 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
+ ldm:
+ datasets:
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: category
+ - id: type
+ title: Type
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
+ title: Budget
+ description: Budget
+ sourceColumn: budget
+ tags:
+ - Campaign channels
+ - id: spend
+ title: Spend
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaign channels
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_name
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: campaigns
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaigns
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
+ title: Customer id
+ description: Customer id
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_id
+ - id: customer_name
+ title: Customer name
+ description: Customer name
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_name
+ - id: region
+ title: Region
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
+ labels:
+ - id: geo__state__location
+ title: Location
+ description: Location
+ sourceColumn: geo__state__location
+ tags:
+ - Customers
+ tags:
+ - Customers
+ sourceColumn: state
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: customers
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Customers
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
+ title: Order id
+ description: Order id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_id
+ - id: order_line_id
+ title: Order line id
+ description: Order line id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_line_id
+ - id: order_status
+ title: Order status
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
+ facts:
+ - id: price
+ title: Price
+ description: Price
+ sourceColumn: price
+ tags:
+ - Order lines
+ - id: quantity
+ title: Quantity
+ description: Quantity
+ sourceColumn: quantity
+ tags:
+ - Order lines
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ - identifier:
+ id: customers
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - customer_id
+ - identifier:
+ id: date
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - date
+ - identifier:
+ id: products
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Order lines
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
+ title: Product id
+ description: Product id
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_id
+ - id: product_name
+ title: Product name
+ description: Product name
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_name
+ - id: products.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: products
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Products
+ dateInstances:
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
+ - MINUTE
+ - HOUR
+ - DAY
+ - WEEK
+ - MONTH
+ - QUARTER
+ - YEAR
+ - MINUTE_OF_HOUR
+ - HOUR_OF_DAY
+ - DAY_OF_WEEK
+ - DAY_OF_MONTH
+ - DAY_OF_YEAR
+ - WEEK_OF_YEAR
+ - MONTH_OF_YEAR
+ - QUARTER_OF_YEAR
+ tags:
+ - Date
analytics:
analyticalDashboards:
- - content:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -271,10 +541,9 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -306,9 +575,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -452,24 +722,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -487,10 +744,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -503,147 +760,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_customers
- title: '# of Active Customers'
- - content:
+ - id: amount_of_orders
+ title: '# of Orders'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/order_id})
- id: amount_of_orders
- title: '# of Orders'
- - content:
+ - id: amount_of_top_customers
+ title: '# of Top Customers'
+ 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'
- - content:
+ - id: amount_of_valid_orders
+ title: '# of Valid Orders'
+ description: ''
+ content:
format: '#,##0.00'
maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: amount_of_valid_orders
- title: '# of Valid Orders'
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
format: $#,##0
maql: SELECT SUM({fact/spend})
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: order_amount
+ title: Order Amount
+ content:
format: $#,##0
maql: SELECT SUM({fact/price}*{fact/quantity})
- id: order_amount
- title: Order Amount
- - content:
+ - id: percent_revenue
+ title: '% Revenue'
+ content:
format: '#,##0.0%'
maql: SELECT {metric/revenue} / {metric/total_revenue}
- id: percent_revenue
- title: '% Revenue'
- - content:
+ - id: percent_revenue_from_top_10_customers
+ title: '% Revenue from Top 10 Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_customers
+ title: '% Revenue from Top 10% Customers'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_percent_products
+ title: '% Revenue from Top 10% Products'
+ 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'
- - content:
+ - id: percent_revenue_from_top_10_products
+ title: '% Revenue from Top 10 Products'
+ 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'
- - content:
+ - id: percent_revenue_in_category
+ title: '% Revenue in Category'
+ 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'
- - content:
+ - id: percent_revenue_per_product
+ title: '% Revenue per Product'
+ 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'
- - content:
+ - id: revenue
+ title: Revenue
+ description: ''
+ content:
format: $#,##0
maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status}
IN ("Returned", "Canceled"))
- description: ''
- id: revenue
- title: Revenue
- - content:
+ - id: revenue-clothing
+ title: Revenue (Clothing)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Clothing")
- id: revenue-clothing
- title: Revenue (Clothing)
- - content:
+ - id: revenue-electronic
+ title: Revenue (Electronic)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
( "Electronics")
- id: revenue-electronic
- title: Revenue (Electronic)
- - content:
+ - id: revenue-home
+ title: Revenue (Home)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Home")
- id: revenue-home
- title: Revenue (Home)
- - content:
+ - id: revenue-outdoor
+ title: Revenue (Outdoor)
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE {label/products.category} IN
("Outdoor")
- id: revenue-outdoor
- title: Revenue (Outdoor)
- - content:
+ - id: revenue_per_customer
+ title: Revenue per Customer
+ content:
format: $#,##0.0
maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})
- id: revenue_per_customer
- title: Revenue per Customer
- - content:
+ - id: revenue_per_dollar_spent
+ title: Revenue per Dollar Spent
+ content:
format: $#,##0.0
maql: SELECT {metric/revenue} / {metric/campaign_spend}
- id: revenue_per_dollar_spent
- title: Revenue per Dollar Spent
- - content:
+ - id: revenue_top_10
+ title: Revenue / Top 10
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
- id: revenue_top_10
- title: Revenue / Top 10
- - content:
+ - id: revenue_top_10_percent
+ title: Revenue / Top 10%
+ content:
format: $#,##0
maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})
- id: revenue_top_10_percent
- title: Revenue / Top 10%
- - content:
+ - id: total_revenue
+ title: Total Revenue
+ content:
format: $#,##0
maql: SELECT {metric/revenue} BY ALL OTHER
- id: total_revenue
- title: Total Revenue
- - content:
+ - id: total_revenue-no_filters
+ title: Total Revenue (No Filters)
+ content:
format: $#,##0
maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER
- id: total_revenue-no_filters
- title: Total Revenue (No Filters)
visualizationObjects:
- - content:
+ - id: campaign_spend
+ title: Campaign Spend
+ content:
buckets:
- items:
- measure:
@@ -701,9 +957,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: campaign_spend
- title: Campaign Spend
- - content:
+ - id: customers_trend
+ title: Customers Trend
+ content:
buckets:
- items:
- measure:
@@ -773,9 +1029,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: customers_trend
- title: Customers Trend
- - content:
+ - id: percent_revenue_per_product_by_customer_and_category
+ title: '% Revenue per Product by Customer and Category'
+ content:
buckets:
- items:
- measure:
@@ -848,9 +1104,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: percent_revenue_per_product_by_customer_and_category
- title: '% Revenue per Product by Customer and Category'
- - content:
+ - id: percentage_of_customers_by_region
+ title: Percentage of Customers by Region
+ content:
buckets:
- items:
- measure:
@@ -903,9 +1159,9 @@ interactions:
stackMeasuresToPercent: true
version: '2'
visualizationUrl: local:area
- id: percentage_of_customers_by_region
- title: Percentage of Customers by Region
- - content:
+ - id: product_breakdown
+ title: Product Breakdown
+ content:
buckets:
- items:
- measure:
@@ -956,9 +1212,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:treemap
- id: product_breakdown
- title: Product Breakdown
- - content:
+ - id: product_categories_pie_chart
+ title: Product Categories Pie Chart
+ content:
buckets:
- items:
- measure:
@@ -1005,9 +1261,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:donut
- id: product_categories_pie_chart
- title: Product Categories Pie Chart
- - content:
+ - id: product_revenue_comparison-over_previous_period
+ title: Product Revenue Comparison (over previous period)
+ content:
buckets:
- items:
- measure:
@@ -1076,9 +1332,9 @@ interactions:
visible: false
version: '2'
visualizationUrl: local:column
- id: product_revenue_comparison-over_previous_period
- title: Product Revenue Comparison (over previous period)
- - content:
+ - id: product_saleability
+ title: Product Saleability
+ content:
buckets:
- items:
- measure:
@@ -1129,9 +1385,9 @@ interactions:
enabled: true
version: '2'
visualizationUrl: local:scatter
- id: product_saleability
- title: Product Saleability
- - content:
+ - id: revenue_and_quantity_by_product_and_category
+ title: Revenue and Quantity by Product and Category
+ content:
buckets:
- items:
- measure:
@@ -1224,9 +1480,9 @@ interactions:
direction: asc
version: '2'
visualizationUrl: local:table
- id: revenue_and_quantity_by_product_and_category
- title: Revenue and Quantity by Product and Category
- - content:
+ - id: revenue_by_category_trend
+ title: Revenue by Category Trend
+ content:
buckets:
- items:
- measure:
@@ -1276,9 +1532,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:line
- id: revenue_by_category_trend
- title: Revenue by Category Trend
- - content:
+ - id: revenue_by_product
+ title: Revenue by Product
+ content:
buckets:
- items:
- measure:
@@ -1311,9 +1567,9 @@ interactions:
properties: {}
version: '2'
visualizationUrl: local:bar
- id: revenue_by_product
- title: Revenue by Product
- - content:
+ - id: revenue_per_usd_vs_spend_by_campaign
+ title: Revenue per $ vs Spend by Campaign
+ content:
buckets:
- items:
- measure:
@@ -1363,9 +1619,9 @@ interactions:
min: '0'
version: '2'
visualizationUrl: local:scatter
- id: revenue_per_usd_vs_spend_by_campaign
- title: Revenue per $ vs Spend by Campaign
- - content:
+ - id: revenue_trend
+ title: Revenue Trend
+ content:
buckets:
- items:
- measure:
@@ -1427,9 +1683,9 @@ interactions:
rotation: auto
version: '2'
visualizationUrl: local:combo2
- id: revenue_trend
- title: Revenue Trend
- - content:
+ - id: top_10_customers
+ title: Top 10 Customers
+ content:
buckets:
- items:
- measure:
@@ -1480,9 +1736,9 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_customers
- title: Top 10 Customers
- - content:
+ - id: top_10_products
+ title: Top 10 Products
+ content:
buckets:
- items:
- measure:
@@ -1533,360 +1789,104 @@ interactions:
position: bottom
version: '2'
visualizationUrl: local:bar
- id: top_10_products
- title: Top 10 Products
- ldm:
- datasets:
- - attributes:
- - description: Campaign channel id
- id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- tags:
- - Campaign channels
- title: Campaign channel id
- - description: Category
- id: campaign_channels.category
- labels: []
- sourceColumn: category
- tags:
- - Campaign channels
- title: Category
- - description: Type
- id: type
- labels: []
- sourceColumn: type
- tags:
- - Campaign channels
- title: Type
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- description: Campaign channels
- facts:
- - description: Budget
- id: budget
- sourceColumn: budget
- tags:
- - Campaign channels
- title: Budget
- - description: Spend
- id: spend
- sourceColumn: spend
- tags:
- - Campaign channels
- title: Spend
- grain:
- - id: campaign_channel_id
- type: attribute
+ dashboardPlugins:
+ - id: dashboard_plugin_1
+ title: dashboard_plugin_1
+ description: Testing record dashboard_plugin_1
+ content:
+ url: https://www.example.com
+ version: '2'
+ - id: dashboard_plugin_2
+ title: dashboard_plugin_2
+ description: Testing record dashboard_plugin_2
+ content:
+ url: https://www.example.com
+ version: '2'
+ - request:
+ method: PUT
+ uri: http://localhost:3000/api/v1/layout/workspaces/demo_testing
+ body:
+ ldm:
+ datasets:
+ - grain:
+ - id: campaign_channel_id
+ type: attribute
+ id: campaign_channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ title: Campaign channels
+ description: Campaign channels
+ attributes:
+ - id: campaign_channel_id
+ labels: []
+ sourceColumn: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ tags:
+ - Campaign channels
+ - id: campaign_channels.category
+ labels: []
+ sourceColumn: category
+ title: Category
+ description: Category
+ tags:
+ - Campaign channels
+ - id: type
+ labels: []
+ sourceColumn: type
+ title: Type
+ description: Type
+ tags:
+ - Campaign channels
+ facts:
+ - id: budget
+ sourceColumn: budget
+ title: Budget
+ description: Budget
+ tags:
+ - Campaign channels
+ - id: spend
+ sourceColumn: spend
+ title: Spend
+ description: Spend
+ tags:
+ - Campaign channels
+ dataSourceTableId:
+ dataSourceId: demo-test-ds
id: campaign_channels
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- tags:
- - Campaign channels
- title: Campaign channels
- - attributes:
- - description: Campaign id
- id: campaign_id
- labels: []
- sourceColumn: campaign_id
- tags:
- - Campaigns
- title: Campaign id
- - description: Campaign name
- id: campaign_name
- labels: []
- sourceColumn: campaign_name
- tags:
- - Campaigns
- title: Campaign name
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaigns
- type: dataSource
- description: Campaigns
- facts: []
- grain:
- - id: campaign_id
- type: attribute
- id: campaigns
- references: []
- tags:
- - Campaigns
- title: Campaigns
- - attributes:
- - description: Customer id
- id: customer_id
- labels: []
- sourceColumn: customer_id
- tags:
- - Customers
- title: Customer id
- - description: Customer name
- id: customer_name
- labels: []
- sourceColumn: customer_name
- tags:
- - Customers
- title: Customer name
- - description: Region
- id: region
- labels: []
- sourceColumn: region
- tags:
- - Customers
- title: Region
- - description: State
- id: state
- labels:
- - description: Location
- id: geo__state__location
- sourceColumn: geo__state__location
- tags:
- - Customers
- title: Location
- sourceColumn: state
- tags:
- - Customers
- title: State
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: customers
- type: dataSource
- description: Customers
- facts: []
- grain:
- - id: customer_id
- type: attribute
- id: customers
- references: []
- tags:
- - Customers
- title: Customers
- - attributes:
- - description: Order id
- id: order_id
- labels: []
- sourceColumn: order_id
- tags:
- - Order lines
- title: Order id
- - description: Order line id
- id: order_line_id
- labels: []
- sourceColumn: order_line_id
- tags:
- - Order lines
- title: Order line id
- - description: Order status
- id: order_status
- labels: []
- sourceColumn: order_status
- tags:
- - Order lines
- title: Order status
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: order_lines
- type: dataSource
- description: Order lines
- facts:
- - description: Price
- id: price
- sourceColumn: price
- tags:
- - Order lines
- title: Price
- - description: Quantity
- id: quantity
- sourceColumn: quantity
- tags:
- - Order lines
- title: Quantity
- grain:
- - id: order_line_id
- type: attribute
- id: order_lines
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- - identifier:
- id: customers
- type: dataset
- multivalue: false
- sourceColumns:
- - customer_id
- - identifier:
- id: date
- type: dataset
- multivalue: false
- sourceColumns:
- - date
- - identifier:
- id: products
- type: dataset
- multivalue: false
- sourceColumns:
- - product_id
- tags:
- - Order lines
- title: Order lines
- - attributes:
- - description: Product id
- id: product_id
- labels: []
- sourceColumn: product_id
- tags:
- - Products
- title: Product id
- - description: Product name
- id: product_name
- labels: []
- sourceColumn: product_name
- tags:
- - Products
- title: Product name
- - description: Category
- id: products.category
- labels: []
- sourceColumn: category
- tags:
- - Products
- title: Category
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: products
- type: dataSource
- description: Products
- facts: []
- grain:
- - id: product_id
- type: attribute
- id: products
- references: []
- tags:
- - Products
- title: Products
- dateInstances:
- - description: ''
- granularities:
- - MINUTE
- - HOUR
- - DAY
- - WEEK
- - MONTH
- - QUARTER
- - YEAR
- - MINUTE_OF_HOUR
- - HOUR_OF_DAY
- - DAY_OF_WEEK
- - DAY_OF_MONTH
- - DAY_OF_YEAR
- - WEEK_OF_YEAR
- - MONTH_OF_YEAR
- - QUARTER_OF_YEAR
- granularitiesFormatting:
- titleBase: ''
- titlePattern: '%titleBase - %granularityTitle'
- id: date
- tags:
- - Date
- title: Date
- - request:
- method: PUT
- uri: http://localhost:3000/api/v1/layout/workspaces/demo_testing
- body:
- ldm:
- datasets:
- - grain:
- - id: campaign_channel_id
- type: attribute
- id: campaign_channels
- references:
- - identifier:
- id: campaigns
- type: dataset
- multivalue: false
- sourceColumns:
- - campaign_id
- title: Campaign channels
- description: Campaign channels
- attributes:
- - id: campaign_channel_id
- labels: []
- sourceColumn: campaign_channel_id
- title: Campaign channel id
- description: Campaign channel id
- tags:
- - Campaign channels
- - id: campaign_channels.category
- labels: []
- sourceColumn: category
- title: Category
- description: Category
- tags:
- - Campaign channels
- - id: type
- labels: []
- sourceColumn: type
- title: Type
- description: Type
- tags:
- - Campaign channels
- facts:
- - id: budget
- sourceColumn: budget
- title: Budget
- description: Budget
- tags:
- - Campaign channels
- - id: spend
- sourceColumn: spend
- title: Spend
- description: Spend
- tags:
- - Campaign channels
- dataSourceTableId:
- dataSourceId: demo-test-ds
- id: campaign_channels
- type: dataSource
- 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
- description: Campaign id
- tags:
- - Campaigns
- - id: campaign_name
- labels: []
- sourceColumn: campaign_name
- title: Campaign name
- description: Campaign name
- tags:
- - Campaigns
- facts: []
- dataSourceTableId:
- dataSourceId: demo-test-ds
+ type: dataSource
+ 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
+ description: Campaign id
+ tags:
+ - Campaigns
+ - id: campaign_name
+ labels: []
+ sourceColumn: campaign_name
+ title: Campaign name
+ description: Campaign name
+ tags:
+ - Campaigns
+ facts: []
+ dataSourceTableId:
+ dataSourceId: demo-test-ds
id: campaigns
type: dataSource
tags:
@@ -3386,7 +3386,7 @@ interactions:
response:
status:
code: 204
- message: ''
+ message: No Content
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -3408,6 +3408,8 @@ interactions:
blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io
*.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com;
media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net'
+ Content-Type:
+ - application/json
Date: *id001
Expires:
- '0'
@@ -3419,22 +3421,22 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string: ''
- request:
@@ -3451,7 +3453,7 @@ interactions:
response:
status:
code: 200
- message: ''
+ message: OK
headers:
Access-Control-Allow-Credentials:
- 'true'
@@ -3461,6 +3463,8 @@ interactions:
- no-cache, no-store, max-age=0, must-revalidate
Connection:
- keep-alive
+ Content-Length:
+ - '32180'
Content-Security-Policy:
- 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline''
''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com
@@ -3486,73 +3490,340 @@ interactions:
'none';
Pragma:
- no-cache
+ Referrer-Policy:
+ - no-referrer
Server:
- nginx
Set-Cookie:
- - SPRING_SEC_SECURITY_CONTEXT=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10
- GMT; Path=/; HttpOnly
- Transfer-Encoding:
- - chunked
+ - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00
+ GMT; HttpOnly; SameSite=Lax
Vary:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
X-Content-Type-Options:
- nosniff
- X-Frame-Options:
- - DENY
X-GDC-TRACE-ID: *id001
X-XSS-Protection:
- - 1; mode=block
+ - 1 ; mode=block
body:
string:
- analytics:
- analyticalDashboards:
- - content:
- filterContextRef:
- identifier:
- id: campaign_name_filter
- type: filterContext
- layout:
- type: IDashboardLayout
- sections:
- - type: IDashboardLayoutSection
- items:
- - type: IDashboardLayoutItem
- size:
- xl:
- gridWidth: 6
- widget:
- type: insight
- title: Campaign Spend
- description: ''
- ignoreDashboardFilters: []
- insight:
- identifier:
- id: campaign_spend
- type: visualizationObject
- drills: []
- properties: {}
- - type: IDashboardLayoutItem
- size:
- xl:
- gridWidth: 6
- widget:
- type: insight
- title: Revenue per $ vs Spend by Campaign
- description: ''
- ignoreDashboardFilters: []
- insight:
- identifier:
+ ldm:
+ datasets:
+ - id: campaign_channels
+ title: Campaign channels
+ description: Campaign channels
+ grain:
+ - id: campaign_channel_id
+ type: attribute
+ attributes:
+ - id: campaign_channel_id
+ title: Campaign channel id
+ description: Campaign channel id
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: campaign_channel_id
+ - id: campaign_channels.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: category
+ - id: type
+ title: Type
+ description: Type
+ labels: []
+ tags:
+ - Campaign channels
+ sourceColumn: type
+ facts:
+ - id: budget
+ title: Budget
+ description: Budget
+ sourceColumn: budget
+ tags:
+ - Campaign channels
+ - id: spend
+ title: Spend
+ description: Spend
+ sourceColumn: spend
+ tags:
+ - Campaign channels
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ dataSourceTableId:
+ id: campaign_channels
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaign channels
+ - id: campaigns
+ title: Campaigns
+ description: Campaigns
+ grain:
+ - id: campaign_id
+ type: attribute
+ attributes:
+ - id: campaign_id
+ title: Campaign id
+ description: Campaign id
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_id
+ - id: campaign_name
+ title: Campaign name
+ description: Campaign name
+ labels: []
+ tags:
+ - Campaigns
+ sourceColumn: campaign_name
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: campaigns
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Campaigns
+ - id: customers
+ title: Customers
+ description: Customers
+ grain:
+ - id: customer_id
+ type: attribute
+ attributes:
+ - id: customer_id
+ title: Customer id
+ description: Customer id
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_id
+ - id: customer_name
+ title: Customer name
+ description: Customer name
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: customer_name
+ - id: region
+ title: Region
+ description: Region
+ labels: []
+ tags:
+ - Customers
+ sourceColumn: region
+ - id: state
+ title: State
+ description: State
+ labels:
+ - id: geo__state__location
+ title: Location
+ description: Location
+ sourceColumn: geo__state__location
+ tags:
+ - Customers
+ tags:
+ - Customers
+ sourceColumn: state
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: customers
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Customers
+ - id: order_lines
+ title: Order lines
+ description: Order lines
+ grain:
+ - id: order_line_id
+ type: attribute
+ attributes:
+ - id: order_id
+ title: Order id
+ description: Order id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_id
+ - id: order_line_id
+ title: Order line id
+ description: Order line id
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_line_id
+ - id: order_status
+ title: Order status
+ description: Order status
+ labels: []
+ tags:
+ - Order lines
+ sourceColumn: order_status
+ facts:
+ - id: price
+ title: Price
+ description: Price
+ sourceColumn: price
+ tags:
+ - Order lines
+ - id: quantity
+ title: Quantity
+ description: Quantity
+ sourceColumn: quantity
+ tags:
+ - Order lines
+ references:
+ - identifier:
+ id: campaigns
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - campaign_id
+ - identifier:
+ id: customers
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - customer_id
+ - identifier:
+ id: date
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - date
+ - identifier:
+ id: products
+ type: dataset
+ multivalue: false
+ sourceColumns:
+ - product_id
+ dataSourceTableId:
+ id: order_lines
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Order lines
+ - id: products
+ title: Products
+ description: Products
+ grain:
+ - id: product_id
+ type: attribute
+ attributes:
+ - id: product_id
+ title: Product id
+ description: Product id
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_id
+ - id: product_name
+ title: Product name
+ description: Product name
+ labels: []
+ tags:
+ - Products
+ sourceColumn: product_name
+ - id: products.category
+ title: Category
+ description: Category
+ labels: []
+ tags:
+ - Products
+ sourceColumn: category
+ facts: []
+ references: []
+ dataSourceTableId:
+ id: products
+ dataSourceId: demo-test-ds
+ type: dataSource
+ tags:
+ - Products
+ dateInstances:
+ - id: date
+ title: Date
+ description: ''
+ granularitiesFormatting:
+ titleBase: ''
+ titlePattern: '%titleBase - %granularityTitle'
+ granularities:
+ - MINUTE
+ - HOUR
+ - DAY
+ - WEEK
+ - MONTH
+ - QUARTER
+ - YEAR
+ - MINUTE_OF_HOUR
+ - HOUR_OF_DAY
+ - DAY_OF_WEEK
+ - DAY_OF_MONTH
+ - DAY_OF_YEAR
+ - WEEK_OF_YEAR
+ - MONTH_OF_YEAR
+ - QUARTER_OF_YEAR
+ tags:
+ - Date
+ analytics:
+ analyticalDashboards:
+ - id: campaign
+ title: Campaign
+ description: ''
+ content:
+ filterContextRef:
+ identifier:
+ id: campaign_name_filter
+ type: filterContext
+ layout:
+ type: IDashboardLayout
+ sections:
+ - type: IDashboardLayoutSection
+ items:
+ - type: IDashboardLayoutItem
+ size:
+ xl:
+ gridWidth: 6
+ widget:
+ type: insight
+ title: Campaign Spend
+ description: ''
+ ignoreDashboardFilters: []
+ insight:
+ identifier:
+ id: campaign_spend
+ type: visualizationObject
+ drills: []
+ properties: {}
+ - type: IDashboardLayoutItem
+ size:
+ xl:
+ gridWidth: 6
+ widget:
+ type: insight
+ title: Revenue per $ vs Spend by Campaign
+ description: ''
+ ignoreDashboardFilters: []
+ insight:
+ identifier:
id: revenue_per_usd_vs_spend_by_campaign
type: visualizationObject
drills: []
properties: {}
version: '2'
- description: ''
- id: campaign
- title: Campaign
- - content:
+ - id: dashboard_plugin
+ title: Dashboard plugin
+ content:
filterContextRef:
identifier:
id: campaign_name_filter
@@ -3584,9 +3855,10 @@ interactions:
type: dashboardPlugin
version: '2'
version: '2'
- id: dashboard_plugin
- title: Dashboard plugin
- - content:
+ - id: product_and_category
+ title: Product & Category
+ description: ''
+ content:
filterContextRef:
identifier:
id: region_filter
@@ -3730,24 +4002,11 @@ interactions:
drills: []
properties: {}
version: '2'
- description: ''
- id: product_and_category
- title: Product & Category
- dashboardPlugins:
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_1
- id: dashboard_plugin_1
- title: dashboard_plugin_1
- - content:
- url: https://www.example.com
- version: '2'
- description: Testing record dashboard_plugin_2
- id: dashboard_plugin_2
- title: dashboard_plugin_2
filterContexts:
- - content:
+ - id: campaign_name_filter
+ title: filterContext
+ description: ''
+ content:
filters:
- dateFilter:
from: '0'
@@ -3765,10 +4024,10 @@ interactions:
localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d
filterElementsBy: []
version: '2'
- description: ''
- id: campaign_name_filter
+ - id: region_filter
title: filterContext
- - content:
+ description: ''
+ content:
filters:
- attributeFilter:
displayForm:
@@ -3781,147 +4040,146 @@ interactions:
localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af
filterElementsBy: []
version: '2'
- description: ''
- id: region_filter
- title: filterContext
metrics:
- - content:
+ - id: amount_of_active_customers
+ title: '# of Active Customers'
+ content:
format: '#,##0'
maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id})
- id: amount_of_active_