diff --git a/.cursor/rules/cursor/rules.mdc b/.cursor/rules/cursor/rules.mdc new file mode 100644 index 000000000..d0749882b --- /dev/null +++ b/.cursor/rules/cursor/rules.mdc @@ -0,0 +1,152 @@ +--- +description: How to create or update Cursor rule files for GoodData Python SDK repository +alwaysApply: false +--- + +# How to Create/Update Cursor Rule Files + +## Rule File Structure + +``` +.cursor/rules/ +├── cursor/ # Meta-rules about Cursor +│ ├── rules.mdc # This file +│ └── workflow-validation.mdc +├── general/ # Always-applied core rules +│ └── workflow-and-testing.mdc # ESSENTIAL: Keep concise! +└── libraries/ # Library-specific rules + └── gooddata-api-client.mdc +``` + +## Rule Categories + +### General Rules (alwaysApply: true) +Located in `general/`, always included in context. + +**CRITICAL**: Keep these concise - they're always loaded! +- Focus on essential workflows +- Use tables for quick reference +- Remove redundancy +- Typical size: 100-200 lines max + +Example: `workflow-and-testing.mdc` (merged workflow + testing essentials) + +### Library Rules (alwaysApply: false) +Located in `libraries/`, loaded when relevant. + +Can be more detailed since they're conditional. + +Example: `gooddata-api-client.mdc` (API client regeneration) + +## Rule File Format + +```markdown +--- +description: Specific, keyword-rich description for Cursor's relevance detection +alwaysApply: true # or false +--- + +# Clear Title + +## Essential sections only +``` + +### Writing Concise Rules + +**DO**: +- ✅ Focus on commands and workflows +- ✅ Use tables for quick reference +- ✅ Include concrete examples +- ✅ Keep always-applied rules under 200 lines +- ✅ Merge related topics to avoid redundancy + +**DON'T**: +- ❌ Repeat information across files +- ❌ Include every possible detail +- ❌ Write long explanations for obvious things +- ❌ Create separate files for related topics + +## Description Guidelines + +The `description` field is critical for Cursor's relevance matching. + +**Good**: +```yaml +description: Essential development workflow and testing commands for GoodData Python SDK - formatting, linting, testing, and validation procedures +``` + +**Bad**: +```yaml +description: How to work with the code +``` + +Include keywords: package names, technologies, workflows, concepts. + +## Creating New Rules + +### When to Create + +- ✅ Critical workflow not covered +- ✅ Library-specific patterns needed +- ✅ Common mistakes to prevent + +### Process + +1. **Determine category**: General (always) or Library (conditional)? +2. **Keep it concise**: Merge related topics +3. **Test usefulness**: Would this solve real problems? +4. **Check redundancy**: Does existing rule cover this? + +### Example: Adding Library Rule + +**User**: "Add rules for gooddata-sdk" + +**Action**: +```bash +# Create libraries/gooddata-sdk.mdc with: +# - SDK-specific patterns (catalog services, data sources) +# - Common imports and class structures +# - Testing patterns for SDK +# - Integration with API client +``` + +Keep focused on SDK-specific knowledge, not general workflow (already in `general/`). + +## Repository Context + +### Package Structure +``` +gooddata-api-client/ # Generated (DO NOT EDIT) +gooddata-sdk/ # Core SDK +gooddata-pandas/ # Pandas integration +gooddata-pipelines/ # Pipelines +``` + +### Key Files +- `Makefile` - Root commands (api-client, test, lint) +- `project_common.mk` - Shared package rules +- `pyproject.toml` - Ruff configuration +- `.pre-commit-config.yaml` - Pre-commit hooks + +## Validation Checklist + +Before committing a rule: + +- [ ] Description is specific and keyword-rich +- [ ] If `alwaysApply: true`, file is under 200 lines +- [ ] No redundancy with other rules +- [ ] Commands are accurate and tested +- [ ] Examples are concrete +- [ ] File is in correct directory + +## TODO: Future Rules + +Only create if truly needed: +- [ ] `libraries/gooddata-sdk.mdc` - SDK patterns (if not covered by api-client rule) +- [ ] `libraries/gooddata-pandas.mdc` - Pandas integration (if needed) + +## Related Rules + +- **workflow-validation.mdc** - How Cursor reports used rules +- **workflow-and-testing.mdc** - Example of concise, merged general rule +- **libraries/gooddata-api-client.mdc** - Example of library-specific rule diff --git a/.cursor/rules/cursor/workflow-validation.mdc b/.cursor/rules/cursor/workflow-validation.mdc new file mode 100644 index 000000000..0f8969b45 --- /dev/null +++ b/.cursor/rules/cursor/workflow-validation.mdc @@ -0,0 +1,19 @@ +--- +alwaysApply: true +--- +# Cursor IDE Workflow Validation + +## Workflow and output constraints + +- Include all rules related to the user question; if rules mention dependencies, include those too. +- After fully answering, report the list of used rules. +- Example: **Used rules**: general/general, technologies/python, libraries/gooddata-sdk +- Do not print rule previews or long plans. +- Keep status updates to one short sentence. +- Never inline full rule contents; reference by rule path only when needed. +- Only list rule IDs in "Used rules:". + +## Rule Search Requirements + +Always look for relevant cursor rules in this repository based on the character of the changes. +Do not inline rule contents; reference rules by path only when necessary. diff --git a/.cursor/rules/general/workflow-and-testing.mdc b/.cursor/rules/general/workflow-and-testing.mdc new file mode 100644 index 000000000..2f683a97d --- /dev/null +++ b/.cursor/rules/general/workflow-and-testing.mdc @@ -0,0 +1,139 @@ +--- +description: Essential development workflow and testing commands for GoodData Python SDK - formatting, linting, testing, and validation procedures +alwaysApply: true +--- + +# Development Workflow & Testing + +## After ANY Code Change - Run This + +```bash +# From repository root: +make format-fix # Auto-format code +make lint # Check for issues + +# From package directory (e.g., cd gooddata-sdk): +TEST_ENVS=py313 ADD_ARGS="-k relevant_test" make test +``` + +## Virtual Environment + +- **Location**: `.venv/` at repository root +- **NEVER** use system `python` or `pip` directly +- **ALWAYS** use `.venv/bin/tox`, `.venv/bin/ruff`, etc. + +## Monorepo Structure + +``` +gooddata-api-client/ # Generated from OpenAPI (DO NOT EDIT) +gooddata-sdk/ # Core SDK (depends on api-client) +gooddata-pandas/ # Pandas integration (depends on sdk) +gooddata-pipelines/ # Pipelines (depends on sdk) +``` + +**Dependency chain**: api-client → sdk → pandas, pipelines, etc. + +## Testing Commands + +### Quick Reference + +| Command | Use When | +|---------|----------| +| `TEST_ENVS=py313 make test` | Quick test, one Python version | +| `TEST_ENVS=py313 ADD_ARGS="-k test_name" make test` | Test specific functionality | +| `../.venv/bin/tox -e py313 -- -k test_name` | Rapid iteration (from package dir) | +| `make test` | Full test suite, all Python versions | + +### Environment Variables + +- `TEST_ENVS=py313` - Test with Python 3.13 only (faster) +- `ADD_ARGS="-k scan"` - Run tests matching keyword +- `RECREATE_ENVS=1` - Force recreate tox environments + +## Standard Workflow Example + +```bash +# 1. Make code changes +vim gooddata-sdk/gooddata_sdk/some_file.py + +# 2. Format and lint +make format-fix && make lint + +# 3. Run relevant tests +cd gooddata-sdk +TEST_ENVS=py313 ADD_ARGS="-k relevant" make test + +# 4. Review and commit +cd .. +git diff +git add gooddata-sdk/ +git commit -m "feat: add new feature" +``` + +## API Client Change Workflow + +```bash +# 1. Regenerate API client +make api-client + +# 2. Update SDK wrapper classes +vim gooddata-sdk/gooddata_sdk/catalog/.../column.py +# Add new field: description: Optional[str] = None + +# 3. Format, lint, test +make format-fix && make lint +cd gooddata-sdk +TEST_ENVS=py313 ADD_ARGS="-k scan" make test + +# 4. Commit all changes +cd .. +git add gooddata-api-client/ gooddata-sdk/ schemas/ +git commit -m "feat: adopt column description from scan API" +``` + +## Common Commands + +| Task | Command | +|------|---------| +| Setup dev environment | `make dev` | +| Format code | `make format-fix` | +| Check linting | `make lint` | +| Run tests (all versions) | `make test` | +| Regenerate API client | `make api-client` | +| Type checking | `make mypy` | + +## Pre-commit Hooks + +Pre-commit hooks run automatically when committing. If they fail: +- Auto-corrections aren't staged +- Review the changes: `git diff` +- Re-stage and commit again + +## Git Commit Format + +Use Conventional Commits: +- `feat:` - New feature +- `fix:` - Bug fix +- `docs:` - Documentation +- `test:` - Tests +- `refactor:` - Code refactoring + +## Critical Rules + +❌ **DON'T**: +- Edit files in `gooddata-api-client/` manually +- Use system Python directly +- Skip `make format-fix` before committing +- Commit without running tests + +✅ **DO**: +- Use `.venv/bin/` tools +- Run `make format-fix && make lint` always +- Test in relevant package: `cd && TEST_ENVS=py313 make test` +- Export new public classes in `__init__.py` + +## Need More Details? + +- API client regeneration → See `libraries/gooddata-api-client.mdc` +- Pre-commit config → See `.pre-commit-config.yaml` +- Full guide → See `CONTRIBUTING.md` diff --git a/.cursor/rules/libraries/gooddata-api-client.mdc b/.cursor/rules/libraries/gooddata-api-client.mdc new file mode 100644 index 000000000..923ae642c --- /dev/null +++ b/.cursor/rules/libraries/gooddata-api-client.mdc @@ -0,0 +1,187 @@ +--- +description: Rules for GoodData API Client management - OpenAPI client generation, regeneration workflow, and integration with gooddata-sdk. Critical for maintaining API synchronization. +alwaysApply: false +--- + +# GoodData API Client Management + +## Critical: Generated Code - DO NOT EDIT MANUALLY + +**gooddata-api-client** is generated from OpenAPI specs. Manual edits will be overwritten. + +## When to Regenerate + +Regenerate when backend API changes: +- ✅ New endpoints, fields, or models +- ✅ Changed request/response structures +- ✅ Adopting new backend features + +## Regeneration Command + +```bash +# From repository root (backend must be running at localhost:3000) +make api-client +``` + +This will: +1. Download OpenAPI schemas from backend +2. Merge them into `schemas/gooddata-api-client.json` +3. Regenerate Python client in `gooddata-api-client/` + +## Post-Regeneration: Adopt Changes in SDK + +**Pattern**: When API client model changes, update SDK wrapper classes. + +### Example: Adding New Field + +```bash +# 1. Regenerate +make api-client + +# 2. Check what changed +git diff gooddata-api-client/gooddata_api_client/model/declarative_column.py + +# 3. Update SDK wrapper +vim gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py + +# Add the new field: +@attr.s(auto_attribs=True, kw_only=True) +class CatalogDeclarativeColumn(Base): + name: str + data_type: str + description: Optional[str] = None # NEW FIELD + # ... + +# 4. Format, lint, test +make format-fix && make lint +cd gooddata-sdk +TEST_ENVS=py313 ADD_ARGS="-k scan" make test + +# 5. Commit all +cd .. +git add schemas/ gooddata-api-client/ gooddata-sdk/ +git commit -m "feat: adopt column description from scan API" +``` + +## SDK Wrapper Pattern + +SDK wrappers provide clean interfaces around generated API models: + +```python +# SDK wrapper class +from gooddata_api_client.model.declarative_column import DeclarativeColumn +from gooddata_sdk.catalog.base import Base + +@attr.s(auto_attribs=True, kw_only=True) +class CatalogDeclarativeColumn(Base): + name: str + data_type: str + description: Optional[str] = None # Match API client fields + + @staticmethod + def client_class() -> type[DeclarativeColumn]: + return DeclarativeColumn # Link to API client +``` + +## Common Wrapper Locations + +| API Client Model | SDK Wrapper | Location | +|-----------------|-------------|----------| +| `DeclarativeColumn` | `CatalogDeclarativeColumn` | `gooddata-sdk/.../physical_model/column.py` | +| `DeclarativeTable` | `CatalogDeclarativeTable` | `gooddata-sdk/.../physical_model/table.py` | +| `ScanRequest` | `CatalogScanModelRequest` | `gooddata-sdk/.../requests/scan_model_request.py` | +| `SqlColumn` | `SqlColumn` | `gooddata-sdk/.../action_model/sql_column.py` | + +## Finding Changes + +```bash +# See what changed in specific model +git diff gooddata-api-client/gooddata_api_client/model/declarative_column.py + +# Check generated docs +cat gooddata-api-client/docs/DeclarativeColumn.md +``` + +## Adding Optional Field + +```python +# If API adds optional field, SDK should match: +description: Optional[str] = None # Add with None default +``` + +## Adding Required Field (Breaking) + +```python +# If API makes field required: +new_required_field: str # No default = required +``` + +Note: This is a breaking change - document in commit message. + +## Testing After Regeneration + +```bash +cd gooddata-sdk + +# Test affected functionality +TEST_ENVS=py313 ADD_ARGS="-k scan" make test +TEST_ENVS=py313 ADD_ARGS="-k generate_logical_model" make test + +# Full test +make test +``` + +## Export New Classes + +If adding new SDK wrapper class, export it: + +```python +# gooddata-sdk/gooddata_sdk/__init__.py +from gooddata_sdk.catalog.new_feature import CatalogNewFeature +``` + +## Troubleshooting + +**Backend not running**: +```bash +docker-compose up +``` + +**Schema download failed**: +```bash +# Check backend services respond +curl http://localhost:3000/api/v1/schemas/scan +``` + +**Merge conflict after regeneration**: +```bash +git pull +make api-client # Regenerate to get consistent state +git add gooddata-api-client/ schemas/ +git commit -m "chore: regenerate API client after merge" +``` + +## Checklist + +After regenerating API client: + +- [ ] Regeneration completed without errors +- [ ] Checked `git diff` to see changes +- [ ] Updated SDK wrappers in `gooddata-sdk/` +- [ ] Added new classes to `__init__.py` if needed +- [ ] Ran `make format-fix && make lint` +- [ ] Ran tests: `TEST_ENVS=py313 ADD_ARGS="-k relevant" make test` +- [ ] Committed with descriptive message + +## Key Rules + +❌ **DON'T**: +- Edit generated files in `gooddata-api-client/` +- Regenerate without backend running +- Skip updating SDK wrappers + +✅ **DO**: +- Commit `schemas/` along with generated code +- Update SDK wrappers to match new fields +- Test thoroughly after regeneration +- Export new classes in `__init__.py` diff --git a/.gitignore b/.gitignore index 84f943b0b..a23aef252 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ .idea .vscode -.cursor *.iml .env .env.test diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 806ac9d4d..b47dcb75a 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-api-client|.*\.snapshot\..*|.openapi-generator/custom_templates) +exclude: (gooddata-api-client|.*\.snapshot\..*|.openapi-generator/custom_templates|.cursor) repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 diff --git a/gooddata-api-client/.openapi-generator/FILES b/gooddata-api-client/.openapi-generator/FILES index 7005b1136..20b8dfa1c 100644 --- a/gooddata-api-client/.openapi-generator/FILES +++ b/gooddata-api-client/.openapi-generator/FILES @@ -34,7 +34,9 @@ docs/AlertCondition.md docs/AlertConditionOperand.md docs/AlertDescription.md docs/AlertEvaluationRow.md +docs/AnalyticsCatalogCreatedBy.md docs/AnalyticsCatalogTags.md +docs/AnalyticsCatalogUser.md docs/AnalyticsModelApi.md docs/AnomalyDetectionRequest.md docs/AnomalyDetectionResult.md @@ -48,6 +50,7 @@ docs/AssigneeRule.md docs/AttributeElements.md docs/AttributeElementsByRef.md docs/AttributeElementsByValue.md +docs/AttributeEqualityFilter.md docs/AttributeExecutionResultHeader.md docs/AttributeFilter.md docs/AttributeFilterByDate.md @@ -83,6 +86,9 @@ docs/AvailableAssignees.md docs/AvailableDriversApi.md docs/BoundedFilter.md docs/CSPDirectivesApi.md +docs/ChangeAnalysisRequest.md +docs/ChangeAnalysisResponse.md +docs/ChangeAnalysisResult.md docs/ChatHistoryInteraction.md docs/ChatHistoryRequest.md docs/ChatHistoryResult.md @@ -859,6 +865,7 @@ docs/MemoryItemUseCases.md docs/MetadataSyncApi.md docs/Metric.md docs/MetricRecord.md +docs/MetricValueChange.md docs/MetricsApi.md docs/NegativeAttributeFilter.md docs/NegativeAttributeFilterNegativeAttributeFilter.md @@ -911,6 +918,7 @@ docs/PositiveAttributeFilter.md docs/PositiveAttributeFilterPositiveAttributeFilter.md docs/QualityIssue.md docs/QualityIssueObject.md +docs/QualityIssuesCalculationStatusResponse.md docs/Range.md docs/RangeMeasureValueFilter.md docs/RangeMeasureValueFilterRangeMeasureValueFilter.md @@ -997,6 +1005,7 @@ docs/TotalExecutionResultHeader.md docs/TotalResultHeader.md docs/TranslationsApi.md docs/TriggerAutomationRequest.md +docs/TriggerQualityIssuesCalculationResponse.md docs/UsageApi.md docs/UserAssignee.md docs/UserContext.md @@ -1162,7 +1171,9 @@ gooddata_api_client/model/alert_condition.py gooddata_api_client/model/alert_condition_operand.py gooddata_api_client/model/alert_description.py gooddata_api_client/model/alert_evaluation_row.py +gooddata_api_client/model/analytics_catalog_created_by.py gooddata_api_client/model/analytics_catalog_tags.py +gooddata_api_client/model/analytics_catalog_user.py gooddata_api_client/model/anomaly_detection_request.py gooddata_api_client/model/anomaly_detection_result.py gooddata_api_client/model/api_entitlement.py @@ -1174,6 +1185,7 @@ gooddata_api_client/model/assignee_rule.py gooddata_api_client/model/attribute_elements.py gooddata_api_client/model/attribute_elements_by_ref.py gooddata_api_client/model/attribute_elements_by_value.py +gooddata_api_client/model/attribute_equality_filter.py gooddata_api_client/model/attribute_execution_result_header.py gooddata_api_client/model/attribute_filter.py gooddata_api_client/model/attribute_filter_by_date.py @@ -1203,6 +1215,9 @@ gooddata_api_client/model/automation_tabular_export.py gooddata_api_client/model/automation_visual_export.py gooddata_api_client/model/available_assignees.py gooddata_api_client/model/bounded_filter.py +gooddata_api_client/model/change_analysis_request.py +gooddata_api_client/model/change_analysis_response.py +gooddata_api_client/model/change_analysis_result.py gooddata_api_client/model/chat_history_interaction.py gooddata_api_client/model/chat_history_request.py gooddata_api_client/model/chat_history_result.py @@ -1952,6 +1967,7 @@ gooddata_api_client/model/memory_item.py gooddata_api_client/model/memory_item_use_cases.py gooddata_api_client/model/metric.py gooddata_api_client/model/metric_record.py +gooddata_api_client/model/metric_value_change.py gooddata_api_client/model/negative_attribute_filter.py gooddata_api_client/model/negative_attribute_filter_negative_attribute_filter.py gooddata_api_client/model/note.py @@ -1994,6 +2010,7 @@ gooddata_api_client/model/positive_attribute_filter.py gooddata_api_client/model/positive_attribute_filter_positive_attribute_filter.py gooddata_api_client/model/quality_issue.py gooddata_api_client/model/quality_issue_object.py +gooddata_api_client/model/quality_issues_calculation_status_response.py gooddata_api_client/model/range.py gooddata_api_client/model/range_measure_value_filter.py gooddata_api_client/model/range_measure_value_filter_range_measure_value_filter.py @@ -2072,6 +2089,7 @@ 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/trigger_automation_request.py +gooddata_api_client/model/trigger_quality_issues_calculation_response.py gooddata_api_client/model/user_assignee.py gooddata_api_client/model/user_context.py gooddata_api_client/model/user_group_assignee.py diff --git a/gooddata-api-client/README.md b/gooddata-api-client/README.md index 3861b7c41..b1fec1c88 100644 --- a/gooddata-api-client/README.md +++ b/gooddata-api-client/README.md @@ -134,6 +134,8 @@ Class | Method | HTTP request | Description *CSPDirectivesApi* | [**get_entity_csp_directives**](docs/CSPDirectivesApi.md#get_entity_csp_directives) | **GET** /api/v1/entities/cspDirectives/{id} | Get CSP Directives *CSPDirectivesApi* | [**patch_entity_csp_directives**](docs/CSPDirectivesApi.md#patch_entity_csp_directives) | **PATCH** /api/v1/entities/cspDirectives/{id} | Patch CSP Directives *CSPDirectivesApi* | [**update_entity_csp_directives**](docs/CSPDirectivesApi.md#update_entity_csp_directives) | **PUT** /api/v1/entities/cspDirectives/{id} | Put CSP Directives +*ComputationApi* | [**change_analysis**](docs/ComputationApi.md#change_analysis) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis | Compute change analysis +*ComputationApi* | [**change_analysis_result**](docs/ComputationApi.md#change_analysis_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis/result/{resultId} | Get change analysis result *ComputationApi* | [**column_statistics**](docs/ComputationApi.md#column_statistics) | **POST** /api/v1/actions/dataSources/{dataSourceId}/computeColumnStatistics | (EXPERIMENTAL) Compute column statistics *ComputationApi* | [**compute_label_elements_post**](docs/ComputationApi.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. *ComputationApi* | [**compute_report**](docs/ComputationApi.md#compute_report) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute | Executes analytical request and returns link to the result @@ -334,14 +336,17 @@ Class | Method | HTTP request | Description *SmartFunctionsApi* | [**clustering**](docs/SmartFunctionsApi.md#clustering) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/clustering/{resultId} | (EXPERIMENTAL) Smart functions - Clustering *SmartFunctionsApi* | [**clustering_result**](docs/SmartFunctionsApi.md#clustering_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/clustering/result/{resultId} | (EXPERIMENTAL) Smart functions - Clustering Result *SmartFunctionsApi* | [**create_memory_item**](docs/SmartFunctionsApi.md#create_memory_item) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/memory | (EXPERIMENTAL) Create new memory item +*SmartFunctionsApi* | [**created_by**](docs/SmartFunctionsApi.md#created_by) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/createdBy | Get Analytics Catalog CreatedBy *SmartFunctionsApi* | [**forecast**](docs/SmartFunctionsApi.md#forecast) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/forecast/{resultId} | (BETA) Smart functions - Forecast *SmartFunctionsApi* | [**forecast_result**](docs/SmartFunctionsApi.md#forecast_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/forecast/result/{resultId} | (BETA) Smart functions - Forecast Result *SmartFunctionsApi* | [**get_memory_item**](docs/SmartFunctionsApi.md#get_memory_item) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/memory/{memoryId} | (EXPERIMENTAL) Get memory item *SmartFunctionsApi* | [**get_quality_issues**](docs/SmartFunctionsApi.md#get_quality_issues) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/issues | Get Quality Issues +*SmartFunctionsApi* | [**get_quality_issues_calculation_status**](docs/SmartFunctionsApi.md#get_quality_issues_calculation_status) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/issues/status/{processId} | Get Quality Issues Calculation Status *SmartFunctionsApi* | [**list_memory_items**](docs/SmartFunctionsApi.md#list_memory_items) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/memory | (EXPERIMENTAL) List all memory items *SmartFunctionsApi* | [**remove_memory_item**](docs/SmartFunctionsApi.md#remove_memory_item) | **DELETE** /api/v1/actions/workspaces/{workspaceId}/ai/memory/{memoryId} | (EXPERIMENTAL) Remove memory item *SmartFunctionsApi* | [**resolve_llm_endpoints**](docs/SmartFunctionsApi.md#resolve_llm_endpoints) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/resolveLlmEndpoints | Get Active LLM Endpoints for this workspace *SmartFunctionsApi* | [**tags**](docs/SmartFunctionsApi.md#tags) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/tags | Get Analytics Catalog Tags +*SmartFunctionsApi* | [**trigger_quality_issues_calculation**](docs/SmartFunctionsApi.md#trigger_quality_issues_calculation) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/issues/triggerCheck | Trigger Quality Issues Calculation *SmartFunctionsApi* | [**update_memory_item**](docs/SmartFunctionsApi.md#update_memory_item) | **PUT** /api/v1/actions/workspaces/{workspaceId}/ai/memory/{memoryId} | (EXPERIMENTAL) Update memory item *SmartFunctionsApi* | [**validate_llm_endpoint**](docs/SmartFunctionsApi.md#validate_llm_endpoint) | **POST** /api/v1/actions/ai/llmEndpoint/test | Validate LLM Endpoint *SmartFunctionsApi* | [**validate_llm_endpoint_by_id**](docs/SmartFunctionsApi.md#validate_llm_endpoint_by_id) | **POST** /api/v1/actions/ai/llmEndpoint/{llmEndpointId}/test | Validate LLM Endpoint By Id @@ -438,6 +443,8 @@ Class | Method | HTTP request | Description *ActionsApi* | [**anomaly_detection_result**](docs/ActionsApi.md#anomaly_detection_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/anomalyDetection/result/{resultId} | (EXPERIMENTAL) Smart functions - Anomaly Detection Result *ActionsApi* | [**available_assignees**](docs/ActionsApi.md#available_assignees) | **GET** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/availableAssignees | Get Available Assignees *ActionsApi* | [**cancel_executions**](docs/ActionsApi.md#cancel_executions) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/cancel | Applies all the given cancel tokens. +*ActionsApi* | [**change_analysis**](docs/ActionsApi.md#change_analysis) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis | Compute change analysis +*ActionsApi* | [**change_analysis_result**](docs/ActionsApi.md#change_analysis_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis/result/{resultId} | Get change analysis result *ActionsApi* | [**check_entity_overrides**](docs/ActionsApi.md#check_entity_overrides) | **POST** /api/v1/actions/workspaces/{workspaceId}/checkEntityOverrides | Finds entities with given ID in hierarchy. *ActionsApi* | [**clean_translations**](docs/ActionsApi.md#clean_translations) | **POST** /api/v1/actions/workspaces/{workspaceId}/translations/clean | Cleans up translations. *ActionsApi* | [**clustering**](docs/ActionsApi.md#clustering) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/clustering/{resultId} | (EXPERIMENTAL) Smart functions - Clustering @@ -454,6 +461,7 @@ Class | Method | HTTP request | Description *ActionsApi* | [**create_raw_export**](docs/ActionsApi.md#create_raw_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/raw | (EXPERIMENTAL) Create raw export request *ActionsApi* | [**create_slides_export**](docs/ActionsApi.md#create_slides_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/slides | (EXPERIMENTAL) Create slides export request *ActionsApi* | [**create_tabular_export**](docs/ActionsApi.md#create_tabular_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/tabular | Create tabular export request +*ActionsApi* | [**created_by**](docs/ActionsApi.md#created_by) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/createdBy | Get Analytics Catalog CreatedBy *ActionsApi* | [**dashboard_permissions**](docs/ActionsApi.md#dashboard_permissions) | **GET** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/permissions | Get Dashboard Permissions *ActionsApi* | [**delete_organization_automations**](docs/ActionsApi.md#delete_organization_automations) | **POST** /api/v1/actions/organization/automations/delete | Delete selected automations across all workspaces *ActionsApi* | [**delete_workspace_automations**](docs/ActionsApi.md#delete_workspace_automations) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/delete | Delete selected automations in the workspace @@ -471,6 +479,7 @@ Class | Method | HTTP request | Description *ActionsApi* | [**get_metadata**](docs/ActionsApi.md#get_metadata) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/visual/{exportId}/metadata | Retrieve metadata context *ActionsApi* | [**get_notifications**](docs/ActionsApi.md#get_notifications) | **GET** /api/v1/actions/notifications | Get latest notifications. *ActionsApi* | [**get_quality_issues**](docs/ActionsApi.md#get_quality_issues) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/issues | Get Quality Issues +*ActionsApi* | [**get_quality_issues_calculation_status**](docs/ActionsApi.md#get_quality_issues_calculation_status) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/issues/status/{processId} | Get Quality Issues Calculation Status *ActionsApi* | [**get_raw_export**](docs/ActionsApi.md#get_raw_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/raw/{exportId} | (EXPERIMENTAL) Retrieve exported files *ActionsApi* | [**get_slides_export**](docs/ActionsApi.md#get_slides_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/slides/{exportId} | (EXPERIMENTAL) Retrieve exported files *ActionsApi* | [**get_slides_export_metadata**](docs/ActionsApi.md#get_slides_export_metadata) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/slides/{exportId}/metadata | (EXPERIMENTAL) Retrieve metadata context @@ -516,6 +525,7 @@ Class | Method | HTTP request | Description *ActionsApi* | [**test_notification_channel**](docs/ActionsApi.md#test_notification_channel) | **POST** /api/v1/actions/notificationChannels/test | Test notification channel. *ActionsApi* | [**trigger_automation**](docs/ActionsApi.md#trigger_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/trigger | Trigger automation. *ActionsApi* | [**trigger_existing_automation**](docs/ActionsApi.md#trigger_existing_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger | Trigger existing automation. +*ActionsApi* | [**trigger_quality_issues_calculation**](docs/ActionsApi.md#trigger_quality_issues_calculation) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/issues/triggerCheck | Trigger Quality Issues Calculation *ActionsApi* | [**unpause_organization_automations**](docs/ActionsApi.md#unpause_organization_automations) | **POST** /api/v1/actions/organization/automations/unpause | Unpause selected automations across all workspaces *ActionsApi* | [**unpause_workspace_automations**](docs/ActionsApi.md#unpause_workspace_automations) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/unpause | Unpause selected automations in the workspace *ActionsApi* | [**unsubscribe_all_automations**](docs/ActionsApi.md#unsubscribe_all_automations) | **DELETE** /api/v1/actions/organization/automations/unsubscribe | Unsubscribe from all automations in all workspaces @@ -1000,7 +1010,9 @@ Class | Method | HTTP request | Description - [AlertConditionOperand](docs/AlertConditionOperand.md) - [AlertDescription](docs/AlertDescription.md) - [AlertEvaluationRow](docs/AlertEvaluationRow.md) + - [AnalyticsCatalogCreatedBy](docs/AnalyticsCatalogCreatedBy.md) - [AnalyticsCatalogTags](docs/AnalyticsCatalogTags.md) + - [AnalyticsCatalogUser](docs/AnalyticsCatalogUser.md) - [AnomalyDetectionRequest](docs/AnomalyDetectionRequest.md) - [AnomalyDetectionResult](docs/AnomalyDetectionResult.md) - [ApiEntitlement](docs/ApiEntitlement.md) @@ -1012,6 +1024,7 @@ Class | Method | HTTP request | Description - [AttributeElements](docs/AttributeElements.md) - [AttributeElementsByRef](docs/AttributeElementsByRef.md) - [AttributeElementsByValue](docs/AttributeElementsByValue.md) + - [AttributeEqualityFilter](docs/AttributeEqualityFilter.md) - [AttributeExecutionResultHeader](docs/AttributeExecutionResultHeader.md) - [AttributeFilter](docs/AttributeFilter.md) - [AttributeFilterByDate](docs/AttributeFilterByDate.md) @@ -1041,6 +1054,9 @@ Class | Method | HTTP request | Description - [AutomationVisualExport](docs/AutomationVisualExport.md) - [AvailableAssignees](docs/AvailableAssignees.md) - [BoundedFilter](docs/BoundedFilter.md) + - [ChangeAnalysisRequest](docs/ChangeAnalysisRequest.md) + - [ChangeAnalysisResponse](docs/ChangeAnalysisResponse.md) + - [ChangeAnalysisResult](docs/ChangeAnalysisResult.md) - [ChatHistoryInteraction](docs/ChatHistoryInteraction.md) - [ChatHistoryRequest](docs/ChatHistoryRequest.md) - [ChatHistoryResult](docs/ChatHistoryResult.md) @@ -1790,6 +1806,7 @@ Class | Method | HTTP request | Description - [MemoryItemUseCases](docs/MemoryItemUseCases.md) - [Metric](docs/Metric.md) - [MetricRecord](docs/MetricRecord.md) + - [MetricValueChange](docs/MetricValueChange.md) - [NegativeAttributeFilter](docs/NegativeAttributeFilter.md) - [NegativeAttributeFilterNegativeAttributeFilter](docs/NegativeAttributeFilterNegativeAttributeFilter.md) - [Note](docs/Note.md) @@ -1832,6 +1849,7 @@ Class | Method | HTTP request | Description - [PositiveAttributeFilterPositiveAttributeFilter](docs/PositiveAttributeFilterPositiveAttributeFilter.md) - [QualityIssue](docs/QualityIssue.md) - [QualityIssueObject](docs/QualityIssueObject.md) + - [QualityIssuesCalculationStatusResponse](docs/QualityIssuesCalculationStatusResponse.md) - [Range](docs/Range.md) - [RangeMeasureValueFilter](docs/RangeMeasureValueFilter.md) - [RangeMeasureValueFilterRangeMeasureValueFilter](docs/RangeMeasureValueFilterRangeMeasureValueFilter.md) @@ -1910,6 +1928,7 @@ Class | Method | HTTP request | Description - [TotalExecutionResultHeader](docs/TotalExecutionResultHeader.md) - [TotalResultHeader](docs/TotalResultHeader.md) - [TriggerAutomationRequest](docs/TriggerAutomationRequest.md) + - [TriggerQualityIssuesCalculationResponse](docs/TriggerQualityIssuesCalculationResponse.md) - [UserAssignee](docs/UserAssignee.md) - [UserContext](docs/UserContext.md) - [UserGroupAssignee](docs/UserGroupAssignee.md) diff --git a/gooddata-api-client/docs/ActionsApi.md b/gooddata-api-client/docs/ActionsApi.md index b7471a690..c4db1966c 100644 --- a/gooddata-api-client/docs/ActionsApi.md +++ b/gooddata-api-client/docs/ActionsApi.md @@ -14,6 +14,8 @@ Method | HTTP request | Description [**anomaly_detection_result**](ActionsApi.md#anomaly_detection_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/anomalyDetection/result/{resultId} | (EXPERIMENTAL) Smart functions - Anomaly Detection Result [**available_assignees**](ActionsApi.md#available_assignees) | **GET** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/availableAssignees | Get Available Assignees [**cancel_executions**](ActionsApi.md#cancel_executions) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/cancel | Applies all the given cancel tokens. +[**change_analysis**](ActionsApi.md#change_analysis) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis | Compute change analysis +[**change_analysis_result**](ActionsApi.md#change_analysis_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis/result/{resultId} | Get change analysis result [**check_entity_overrides**](ActionsApi.md#check_entity_overrides) | **POST** /api/v1/actions/workspaces/{workspaceId}/checkEntityOverrides | Finds entities with given ID in hierarchy. [**clean_translations**](ActionsApi.md#clean_translations) | **POST** /api/v1/actions/workspaces/{workspaceId}/translations/clean | Cleans up translations. [**clustering**](ActionsApi.md#clustering) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/clustering/{resultId} | (EXPERIMENTAL) Smart functions - Clustering @@ -30,6 +32,7 @@ Method | HTTP request | Description [**create_raw_export**](ActionsApi.md#create_raw_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/raw | (EXPERIMENTAL) Create raw export request [**create_slides_export**](ActionsApi.md#create_slides_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/slides | (EXPERIMENTAL) Create slides export request [**create_tabular_export**](ActionsApi.md#create_tabular_export) | **POST** /api/v1/actions/workspaces/{workspaceId}/export/tabular | Create tabular export request +[**created_by**](ActionsApi.md#created_by) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/createdBy | Get Analytics Catalog CreatedBy [**dashboard_permissions**](ActionsApi.md#dashboard_permissions) | **GET** /api/v1/actions/workspaces/{workspaceId}/analyticalDashboards/{dashboardId}/permissions | Get Dashboard Permissions [**delete_organization_automations**](ActionsApi.md#delete_organization_automations) | **POST** /api/v1/actions/organization/automations/delete | Delete selected automations across all workspaces [**delete_workspace_automations**](ActionsApi.md#delete_workspace_automations) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/delete | Delete selected automations in the workspace @@ -47,6 +50,7 @@ Method | HTTP request | Description [**get_metadata**](ActionsApi.md#get_metadata) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/visual/{exportId}/metadata | Retrieve metadata context [**get_notifications**](ActionsApi.md#get_notifications) | **GET** /api/v1/actions/notifications | Get latest notifications. [**get_quality_issues**](ActionsApi.md#get_quality_issues) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/issues | Get Quality Issues +[**get_quality_issues_calculation_status**](ActionsApi.md#get_quality_issues_calculation_status) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/issues/status/{processId} | Get Quality Issues Calculation Status [**get_raw_export**](ActionsApi.md#get_raw_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/raw/{exportId} | (EXPERIMENTAL) Retrieve exported files [**get_slides_export**](ActionsApi.md#get_slides_export) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/slides/{exportId} | (EXPERIMENTAL) Retrieve exported files [**get_slides_export_metadata**](ActionsApi.md#get_slides_export_metadata) | **GET** /api/v1/actions/workspaces/{workspaceId}/export/slides/{exportId}/metadata | (EXPERIMENTAL) Retrieve metadata context @@ -92,6 +96,7 @@ Method | HTTP request | Description [**test_notification_channel**](ActionsApi.md#test_notification_channel) | **POST** /api/v1/actions/notificationChannels/test | Test notification channel. [**trigger_automation**](ActionsApi.md#trigger_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/trigger | Trigger automation. [**trigger_existing_automation**](ActionsApi.md#trigger_existing_automation) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/{automationId}/trigger | Trigger existing automation. +[**trigger_quality_issues_calculation**](ActionsApi.md#trigger_quality_issues_calculation) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/issues/triggerCheck | Trigger Quality Issues Calculation [**unpause_organization_automations**](ActionsApi.md#unpause_organization_automations) | **POST** /api/v1/actions/organization/automations/unpause | Unpause selected automations across all workspaces [**unpause_workspace_automations**](ActionsApi.md#unpause_workspace_automations) | **POST** /api/v1/actions/workspaces/{workspaceId}/automations/unpause | Unpause selected automations in the workspace [**unsubscribe_all_automations**](ActionsApi.md#unsubscribe_all_automations) | **DELETE** /api/v1/actions/organization/automations/unsubscribe | Unsubscribe from all automations in all workspaces @@ -136,6 +141,7 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = actions_api.ActionsApi(api_client) workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier chat_request = ChatRequest( + include_hidden=False, limit_create=3, limit_create_context=10, limit_search=5, @@ -301,6 +307,7 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = actions_api.ActionsApi(api_client) workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier chat_request = ChatRequest( + include_hidden=False, limit_create=3, limit_create_context=10, limit_search=5, @@ -874,6 +881,162 @@ 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) +# **change_analysis** +> ChangeAnalysisResponse change_analysis(workspace_id, change_analysis_request) + +Compute change analysis + +Computes change analysis for the provided execution definition. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.change_analysis_response import ChangeAnalysisResponse +from gooddata_api_client.model.change_analysis_request import ChangeAnalysisRequest +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 + change_analysis_request = ChangeAnalysisRequest( + analyzed_period="analyzed_period_example", + attribute_label_identifiers=[ + "attribute_label_identifiers_example", + ], + date_attribute_identifier="date_attribute_identifier_example", + filters=[ + AttributeEqualityFilter( + label_identifier="label_identifier_example", + values=[ + "values_example", + ], + ), + ], + metric_identifier="metric_identifier_example", + reference_period="reference_period_example", + use_smart_attribute_selection=False, + ) # ChangeAnalysisRequest | + + # example passing only required values which don't have defaults set + try: + # Compute change analysis + api_response = api_instance.change_analysis(workspace_id, change_analysis_request) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->change_analysis: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + **change_analysis_request** | [**ChangeAnalysisRequest**](ChangeAnalysisRequest.md)| | + +### Return type + +[**ChangeAnalysisResponse**](ChangeAnalysisResponse.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) + +# **change_analysis_result** +> ChangeAnalysisResult change_analysis_result(workspace_id, result_id) + +Get change analysis result + +Gets change analysis result. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.change_analysis_result import ChangeAnalysisResult +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 change analysis result + api_response = api_instance.change_analysis_result(workspace_id, result_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->change_analysis_result: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + **result_id** | **str**| Result ID | + +### Return type + +[**ChangeAnalysisResult**](ChangeAnalysisResult.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) + # **check_entity_overrides** > [IdentifierDuplications] check_entity_overrides(workspace_id, hierarchy_object_identification) @@ -2361,6 +2524,73 @@ 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) +# **created_by** +> AnalyticsCatalogCreatedBy created_by(workspace_id) + +Get Analytics Catalog CreatedBy + +Returns a list of Users who created any object for this workspace + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.analytics_catalog_created_by import AnalyticsCatalogCreatedBy +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 + + # example passing only required values which don't have defaults set + try: + # Get Analytics Catalog CreatedBy + api_response = api_instance.created_by(workspace_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->created_by: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + +### Return type + +[**AnalyticsCatalogCreatedBy**](AnalyticsCatalogCreatedBy.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) + # **dashboard_permissions** > DashboardPermissions dashboard_permissions(workspace_id, dashboard_id) @@ -2908,6 +3138,7 @@ with gooddata_api_client.ApiClient() as api_client: generate_ldm_request = GenerateLdmRequest( aggregated_fact_prefix="aggr", date_granularities="all", + date_reference_prefix="d", denorm_prefix="dr", fact_prefix="f", generate_long_ids=False, @@ -2921,6 +3152,7 @@ with gooddata_api_client.ApiClient() as api_client: columns=[ SqlColumn( data_type="INT", + description="Customer unique identifier", name="customer_id", ), ], @@ -2946,6 +3178,7 @@ with gooddata_api_client.ApiClient() as api_client: columns=[ DeclarativeColumn( data_type="INT", + description="Customer unique identifier", is_primary_key=True, name="customer_id", referenced_table_column="customer_id", @@ -3698,6 +3931,75 @@ No authorization required - **Accept**: application/json +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_quality_issues_calculation_status** +> QualityIssuesCalculationStatusResponse get_quality_issues_calculation_status(workspace_id, process_id) + +Get Quality Issues Calculation Status + +Returns the status of a quality issues calculation process identified by process ID. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.quality_issues_calculation_status_response import QualityIssuesCalculationStatusResponse +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 + process_id = "processId_example" # str | + + # example passing only required values which don't have defaults set + try: + # Get Quality Issues Calculation Status + api_response = api_instance.get_quality_issues_calculation_status(workspace_id, process_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->get_quality_issues_calculation_status: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + **process_id** | **str**| | + +### Return type + +[**QualityIssuesCalculationStatusResponse**](QualityIssuesCalculationStatusResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + ### HTTP response details | Status code | Description | Response headers | @@ -6964,16 +7266,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=AutomationMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=AutomationMetadata(), notification_channel=DeclarativeNotificationChannelIdentifier( id="webhook123", type="notificationChannel", @@ -7223,6 +7516,73 @@ 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) +# **trigger_quality_issues_calculation** +> TriggerQualityIssuesCalculationResponse trigger_quality_issues_calculation(workspace_id) + +Trigger Quality Issues Calculation + +Triggers asynchronous calculation of metadata quality issues and returns a process ID for status tracking. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import actions_api +from gooddata_api_client.model.trigger_quality_issues_calculation_response import TriggerQualityIssuesCalculationResponse +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 + + # example passing only required values which don't have defaults set + try: + # Trigger Quality Issues Calculation + api_response = api_instance.trigger_quality_issues_calculation(workspace_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ActionsApi->trigger_quality_issues_calculation: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + +### Return type + +[**TriggerQualityIssuesCalculationResponse**](TriggerQualityIssuesCalculationResponse.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) + # **unpause_organization_automations** > unpause_organization_automations(organization_automation_management_bulk_request) diff --git a/gooddata-api-client/docs/AnalyticsCatalogCreatedBy.md b/gooddata-api-client/docs/AnalyticsCatalogCreatedBy.md new file mode 100644 index 000000000..a03360a97 --- /dev/null +++ b/gooddata-api-client/docs/AnalyticsCatalogCreatedBy.md @@ -0,0 +1,13 @@ +# AnalyticsCatalogCreatedBy + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**reasoning** | **str** | Reasoning for error states | +**users** | [**[AnalyticsCatalogUser]**](AnalyticsCatalogUser.md) | Users who created any object in the catalog | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/AnalyticsCatalogUser.md b/gooddata-api-client/docs/AnalyticsCatalogUser.md new file mode 100644 index 000000000..eee96e247 --- /dev/null +++ b/gooddata-api-client/docs/AnalyticsCatalogUser.md @@ -0,0 +1,15 @@ +# AnalyticsCatalogUser + +Users who created any object in the catalog + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**firstname** | **str** | First name of the user who created any objects | +**lastname** | **str** | Last name of the user who created any objects | +**user_id** | **str** | User ID of the user who created any objects | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/AnalyticsModelApi.md b/gooddata-api-client/docs/AnalyticsModelApi.md index a79074278..b954e7169 100644 --- a/gooddata-api-client/docs/AnalyticsModelApi.md +++ b/gooddata-api-client/docs/AnalyticsModelApi.md @@ -224,6 +224,7 @@ with gooddata_api_client.ApiClient() as api_client: ), description="Sales for all the data available.", id="total-sales", + is_hidden=False, modified_at="["2023-07-20 12:30"]", modified_by=DeclarativeUserIdentifier( id="employee123", diff --git a/gooddata-api-client/docs/AttributeEqualityFilter.md b/gooddata-api-client/docs/AttributeEqualityFilter.md new file mode 100644 index 000000000..ad688b932 --- /dev/null +++ b/gooddata-api-client/docs/AttributeEqualityFilter.md @@ -0,0 +1,14 @@ +# AttributeEqualityFilter + +Attribute equality filter + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**label_identifier** | **str** | The attribute label identifier to filter on | +**values** | **[str]** | List of values to match (IN operation) | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/AutomationsApi.md b/gooddata-api-client/docs/AutomationsApi.md index 8402bf348..609e2953e 100644 --- a/gooddata-api-client/docs/AutomationsApi.md +++ b/gooddata-api-client/docs/AutomationsApi.md @@ -134,16 +134,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=JsonApiAutomationInAttributesMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=JsonApiAutomationInAttributesMetadata(), raw_exports=[ JsonApiAutomationInAttributesRawExportsInner( request_payload=RawExportAutomationRequest( @@ -1040,16 +1031,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=JsonApiAutomationInAttributesMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=JsonApiAutomationInAttributesMetadata(), raw_exports=[ JsonApiAutomationInAttributesRawExportsInner( request_payload=RawExportAutomationRequest( @@ -1540,16 +1522,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=AutomationMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=AutomationMetadata(), modified_at="2023-07-20 12:30", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -1855,16 +1828,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=AutomationMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=AutomationMetadata(), notification_channel=DeclarativeNotificationChannelIdentifier( id="webhook123", type="notificationChannel", @@ -2694,16 +2658,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=JsonApiAutomationInAttributesMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=JsonApiAutomationInAttributesMetadata(), raw_exports=[ JsonApiAutomationInAttributesRawExportsInner( request_payload=RawExportAutomationRequest( diff --git a/gooddata-api-client/docs/ChangeAnalysisRequest.md b/gooddata-api-client/docs/ChangeAnalysisRequest.md new file mode 100644 index 000000000..a8617455a --- /dev/null +++ b/gooddata-api-client/docs/ChangeAnalysisRequest.md @@ -0,0 +1,19 @@ +# ChangeAnalysisRequest + +Request for change analysis computation + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**analyzed_period** | **str** | The analyzed time period (e.g., '2025-02') | +**attribute_label_identifiers** | **[str]** | Label identifiers of attributes to analyze for significant changes. If empty, valid attributes will be automatically discovered. | +**date_attribute_identifier** | **str** | The date attribute identifier to use for time period comparison | +**filters** | [**[AttributeEqualityFilter]**](AttributeEqualityFilter.md) | Optional filters to apply. | +**metric_identifier** | **str** | The metric identifier to analyze for changes | +**reference_period** | **str** | The reference time period (e.g., '2025-01') | +**use_smart_attribute_selection** | **bool** | Whether to use smart attribute selection (LLM-based) instead of discovering all valid attributes. If true, GenAI will intelligently select the most relevant attributes for change analysis. If false or not set, all valid attributes will be discovered using Calcique. Smart attribute selection applies only when no attributes are provided. | [optional] if omitted the server will use the default value of False +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/ChangeAnalysisResponse.md b/gooddata-api-client/docs/ChangeAnalysisResponse.md new file mode 100644 index 000000000..8a1106b8d --- /dev/null +++ b/gooddata-api-client/docs/ChangeAnalysisResponse.md @@ -0,0 +1,13 @@ +# ChangeAnalysisResponse + +Response for change analysis computation + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**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/ChangeAnalysisResult.md b/gooddata-api-client/docs/ChangeAnalysisResult.md new file mode 100644 index 000000000..f1463ce08 --- /dev/null +++ b/gooddata-api-client/docs/ChangeAnalysisResult.md @@ -0,0 +1,13 @@ +# ChangeAnalysisResult + +Result of a change analysis execution. + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**[MetricValueChange]**](MetricValueChange.md) | The change analysis result data containing significant changes. | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/ChatRequest.md b/gooddata-api-client/docs/ChatRequest.md index 43fd3a043..34a91ad1c 100644 --- a/gooddata-api-client/docs/ChatRequest.md +++ b/gooddata-api-client/docs/ChatRequest.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **question** | **str** | User question | +**include_hidden** | **bool** | If true, includes hidden objects in search and visualization building. If false (default), excludes objects where isHidden=true. | [optional] if omitted the server will use the default value of False **limit_create** | **int** | Maximum number of created results. | [optional] if omitted the server will use the default value of 3 **limit_create_context** | **int** | Maximum number of relevant objects included into context for LLM (for each object type). | [optional] if omitted the server will use the default value of 10 **limit_search** | **int** | Maximum number of search results. | [optional] if omitted the server will use the default value of 5 diff --git a/gooddata-api-client/docs/ComputationApi.md b/gooddata-api-client/docs/ComputationApi.md index 86a67d936..43d79f74c 100644 --- a/gooddata-api-client/docs/ComputationApi.md +++ b/gooddata-api-client/docs/ComputationApi.md @@ -4,6 +4,8 @@ All URIs are relative to *http://localhost* Method | HTTP request | Description ------------- | ------------- | ------------- +[**change_analysis**](ComputationApi.md#change_analysis) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis | Compute change analysis +[**change_analysis_result**](ComputationApi.md#change_analysis_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis/result/{resultId} | Get change analysis result [**column_statistics**](ComputationApi.md#column_statistics) | **POST** /api/v1/actions/dataSources/{dataSourceId}/computeColumnStatistics | (EXPERIMENTAL) Compute column statistics [**compute_label_elements_post**](ComputationApi.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**](ComputationApi.md#compute_report) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute | Executes analytical request and returns link to the result @@ -16,6 +18,162 @@ Method | HTTP request | Description [**retrieve_result**](ComputationApi.md#retrieve_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId} | Get a single execution result +# **change_analysis** +> ChangeAnalysisResponse change_analysis(workspace_id, change_analysis_request) + +Compute change analysis + +Computes change analysis for the provided execution definition. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computation_api +from gooddata_api_client.model.change_analysis_response import ChangeAnalysisResponse +from gooddata_api_client.model.change_analysis_request import ChangeAnalysisRequest +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 = computation_api.ComputationApi(api_client) + workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier + change_analysis_request = ChangeAnalysisRequest( + analyzed_period="analyzed_period_example", + attribute_label_identifiers=[ + "attribute_label_identifiers_example", + ], + date_attribute_identifier="date_attribute_identifier_example", + filters=[ + AttributeEqualityFilter( + label_identifier="label_identifier_example", + values=[ + "values_example", + ], + ), + ], + metric_identifier="metric_identifier_example", + reference_period="reference_period_example", + use_smart_attribute_selection=False, + ) # ChangeAnalysisRequest | + + # example passing only required values which don't have defaults set + try: + # Compute change analysis + api_response = api_instance.change_analysis(workspace_id, change_analysis_request) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputationApi->change_analysis: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + **change_analysis_request** | [**ChangeAnalysisRequest**](ChangeAnalysisRequest.md)| | + +### Return type + +[**ChangeAnalysisResponse**](ChangeAnalysisResponse.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) + +# **change_analysis_result** +> ChangeAnalysisResult change_analysis_result(workspace_id, result_id) + +Get change analysis result + +Gets change analysis result. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import computation_api +from gooddata_api_client.model.change_analysis_result import ChangeAnalysisResult +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 = computation_api.ComputationApi(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 change analysis result + api_response = api_instance.change_analysis_result(workspace_id, result_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling ComputationApi->change_analysis_result: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + **result_id** | **str**| Result ID | + +### Return type + +[**ChangeAnalysisResult**](ChangeAnalysisResult.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) + # **column_statistics** > ColumnStatisticsResponse column_statistics(data_source_id, column_statistics_request) diff --git a/gooddata-api-client/docs/DeclarativeColumn.md b/gooddata-api-client/docs/DeclarativeColumn.md index db447c8e6..6ed1d439a 100644 --- a/gooddata-api-client/docs/DeclarativeColumn.md +++ b/gooddata-api-client/docs/DeclarativeColumn.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data_type** | **str** | Column type | **name** | **str** | Column name | +**description** | **str** | Column description/comment from database | [optional] **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] diff --git a/gooddata-api-client/docs/DeclarativeMetric.md b/gooddata-api-client/docs/DeclarativeMetric.md index da2af4087..c757792cc 100644 --- a/gooddata-api-client/docs/DeclarativeMetric.md +++ b/gooddata-api-client/docs/DeclarativeMetric.md @@ -10,6 +10,7 @@ Name | Type | Description | Notes **created_at** | **str, none_type** | Time of the entity creation. | [optional] **created_by** | [**DeclarativeUserIdentifier**](DeclarativeUserIdentifier.md) | | [optional] **description** | **str** | Metric description. | [optional] +**is_hidden** | **bool** | If true, this metric is hidden from AI search results. | [optional] **modified_at** | **str, none_type** | Time of the last entity modification. | [optional] **modified_by** | [**DeclarativeUserIdentifier**](DeclarativeUserIdentifier.md) | | [optional] **tags** | **[str]** | A list of tags. | [optional] diff --git a/gooddata-api-client/docs/DeclarativeOrganizationInfo.md b/gooddata-api-client/docs/DeclarativeOrganizationInfo.md index 1ff5ee1bd..cbfa1fc43 100644 --- a/gooddata-api-client/docs/DeclarativeOrganizationInfo.md +++ b/gooddata-api-client/docs/DeclarativeOrganizationInfo.md @@ -15,13 +15,6 @@ Name | Type | Description | Notes **early_access** | **str** | Early access defined on level Organization | [optional] **early_access_values** | **[str]** | Early access defined on level Organization | [optional] **identity_provider** | [**DeclarativeIdentityProviderIdentifier**](DeclarativeIdentityProviderIdentifier.md) | | [optional] -**oauth_client_id** | **str** | Identifier of the authentication provider | [optional] -**oauth_client_secret** | **str** | Communication secret of the authentication provider (never returned back). | [optional] -**oauth_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] -**oauth_custom_scopes** | **[str], none_type** | List of additional OAuth scopes which may be required by other providers (e.g. Snowflake) | [optional] -**oauth_issuer_id** | **str** | Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider. | [optional] -**oauth_issuer_location** | **str** | URI of the authentication provider. | [optional] -**oauth_subject_id_claim** | **str** | Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'. | [optional] **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] diff --git a/gooddata-api-client/docs/EntitiesApi.md b/gooddata-api-client/docs/EntitiesApi.md index a46f233ee..b5eb589a5 100644 --- a/gooddata-api-client/docs/EntitiesApi.md +++ b/gooddata-api-client/docs/EntitiesApi.md @@ -582,16 +582,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=JsonApiAutomationInAttributesMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=JsonApiAutomationInAttributesMetadata(), raw_exports=[ JsonApiAutomationInAttributesRawExportsInner( request_payload=RawExportAutomationRequest( @@ -12573,16 +12564,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=JsonApiAutomationInAttributesMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=JsonApiAutomationInAttributesMetadata(), raw_exports=[ JsonApiAutomationInAttributesRawExportsInner( request_payload=RawExportAutomationRequest( @@ -14445,17 +14427,6 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="hostname_example", name="name_example", - oauth_client_id="oauth_client_id_example", - oauth_client_secret="oauth_client_secret_example", - oauth_custom_auth_attributes={ - "key": "key_example", - }, - oauth_custom_scopes=[ - "oauth_custom_scopes_example", - ], - oauth_issuer_id="myOidcProvider", - oauth_issuer_location="oauth_issuer_location_example", - oauth_subject_id_claim="oid", ), id="id1", relationships=JsonApiOrganizationInRelationships( @@ -15738,16 +15709,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=JsonApiAutomationInAttributesMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=JsonApiAutomationInAttributesMetadata(), raw_exports=[ JsonApiAutomationInAttributesRawExportsInner( request_payload=RawExportAutomationRequest( @@ -17610,17 +17572,6 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="hostname_example", name="name_example", - oauth_client_id="oauth_client_id_example", - oauth_client_secret="oauth_client_secret_example", - oauth_custom_auth_attributes={ - "key": "key_example", - }, - oauth_custom_scopes=[ - "oauth_custom_scopes_example", - ], - oauth_issuer_id="myOidcProvider", - oauth_issuer_location="oauth_issuer_location_example", - oauth_subject_id_claim="oid", ), id="id1", relationships=JsonApiOrganizationInRelationships( diff --git a/gooddata-api-client/docs/GenerateLdmRequest.md b/gooddata-api-client/docs/GenerateLdmRequest.md index 7a310a40c..f69d713bb 100644 --- a/gooddata-api-client/docs/GenerateLdmRequest.md +++ b/gooddata-api-client/docs/GenerateLdmRequest.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **aggregated_fact_prefix** | **str** | Columns starting with this prefix will be considered as aggregated facts. The prefix is then followed by the value of `separator` parameter. Given the aggregated fact prefix is `aggr` and separator is `__`, the columns with name like `aggr__sum__product__sold` will be considered as aggregated sold fact in the product table with SUM aggregate function. | [optional] **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] +**date_reference_prefix** | **str** | Columns starting with this prefix will be considered as references to date dataset. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `d` and separator is `__`, the columns with name like `d__date` will be considered as reference to date dataset. There can be also second separator and granularity suffix, e.g. `d__date__day` to create attribute reference to exact date dataset and granularity. | [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] if omitted the server will use the default value of False diff --git a/gooddata-api-client/docs/GenerateLogicalDataModelApi.md b/gooddata-api-client/docs/GenerateLogicalDataModelApi.md index 40d54ff5c..1ece85b07 100644 --- a/gooddata-api-client/docs/GenerateLogicalDataModelApi.md +++ b/gooddata-api-client/docs/GenerateLogicalDataModelApi.md @@ -39,6 +39,7 @@ with gooddata_api_client.ApiClient() as api_client: generate_ldm_request = GenerateLdmRequest( aggregated_fact_prefix="aggr", date_granularities="all", + date_reference_prefix="d", denorm_prefix="dr", fact_prefix="f", generate_long_ids=False, @@ -52,6 +53,7 @@ with gooddata_api_client.ApiClient() as api_client: columns=[ SqlColumn( data_type="INT", + description="Customer unique identifier", name="customer_id", ), ], @@ -77,6 +79,7 @@ with gooddata_api_client.ApiClient() as api_client: columns=[ DeclarativeColumn( data_type="INT", + description="Customer unique identifier", is_primary_key=True, name="customer_id", referenced_table_column="customer_id", diff --git a/gooddata-api-client/docs/GetQualityIssuesResponse.md b/gooddata-api-client/docs/GetQualityIssuesResponse.md index 1f68b81b7..4cd0cb5aa 100644 --- a/gooddata-api-client/docs/GetQualityIssuesResponse.md +++ b/gooddata-api-client/docs/GetQualityIssuesResponse.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**issues** | [**[QualityIssue]**](QualityIssue.md) | | +**issues** | [**[QualityIssue]**](QualityIssue.md) | List of quality issues found in the 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/JsonApiOrganizationInAttributes.md b/gooddata-api-client/docs/JsonApiOrganizationInAttributes.md index f493c7bc2..45ec5e632 100644 --- a/gooddata-api-client/docs/JsonApiOrganizationInAttributes.md +++ b/gooddata-api-client/docs/JsonApiOrganizationInAttributes.md @@ -9,13 +9,6 @@ Name | Type | Description | Notes **early_access_values** | **[str], none_type** | The early access feature identifiers. They are used to enable experimental features. | [optional] **hostname** | **str** | | [optional] **name** | **str, none_type** | | [optional] -**oauth_client_id** | **str** | | [optional] -**oauth_client_secret** | **str** | | [optional] -**oauth_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] -**oauth_custom_scopes** | **[str], none_type** | List of additional OAuth scopes which may be required by other providers (e.g. Snowflake) | [optional] -**oauth_issuer_id** | **str** | Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider. | [optional] -**oauth_issuer_location** | **str** | | [optional] -**oauth_subject_id_claim** | **str** | Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'. | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md b/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md index ec416ad3e..3893d7526 100644 --- a/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md +++ b/gooddata-api-client/docs/JsonApiOrganizationOutAttributes.md @@ -10,12 +10,6 @@ Name | Type | Description | Notes **early_access_values** | **[str], none_type** | The early access feature identifiers. They are used to enable experimental features. | [optional] **hostname** | **str** | | [optional] **name** | **str, none_type** | | [optional] -**oauth_client_id** | **str** | | [optional] -**oauth_custom_auth_attributes** | **{str: (str,)}** | Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute. | [optional] -**oauth_custom_scopes** | **[str], none_type** | List of additional OAuth scopes which may be required by other providers (e.g. Snowflake) | [optional] -**oauth_issuer_id** | **str** | Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider. | [optional] -**oauth_issuer_location** | **str** | | [optional] -**oauth_subject_id_claim** | **str** | Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'. | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/LayoutApi.md b/gooddata-api-client/docs/LayoutApi.md index a49c2f32c..2a74d2554 100644 --- a/gooddata-api-client/docs/LayoutApi.md +++ b/gooddata-api-client/docs/LayoutApi.md @@ -2035,6 +2035,7 @@ with gooddata_api_client.ApiClient() as api_client: ), description="Sales for all the data available.", id="total-sales", + is_hidden=False, modified_at="["2023-07-20 12:30"]", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -2393,6 +2394,7 @@ with gooddata_api_client.ApiClient() as api_client: ), description="Sales for all the data available.", id="total-sales", + is_hidden=False, modified_at="["2023-07-20 12:30"]", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -2586,16 +2588,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=AutomationMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=AutomationMetadata(), modified_at="2023-07-20 12:30", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -3695,17 +3688,6 @@ with gooddata_api_client.ApiClient() as api_client: type="identityProvider", ), name="Alpha corporation", - oauth_client_id="oauth_client_id_example", - oauth_client_secret="oauth_client_secret_example", - oauth_custom_auth_attributes={ - "key": "key_example", - }, - oauth_custom_scopes=[ - "oauth_custom_scopes_example", - ], - oauth_issuer_id="myOidcProvider", - oauth_issuer_location="oauth_issuer_location_example", - oauth_subject_id_claim="oid", permissions=[ DeclarativeOrganizationPermission( assignee=AssigneeIdentifier( @@ -3903,16 +3885,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=AutomationMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=AutomationMetadata(), modified_at="2023-07-20 12:30", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -4226,6 +4199,7 @@ with gooddata_api_client.ApiClient() as api_client: ), description="Sales for all the data available.", id="total-sales", + is_hidden=False, modified_at="["2023-07-20 12:30"]", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -5132,16 +5106,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=AutomationMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=AutomationMetadata(), modified_at="2023-07-20 12:30", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -5455,6 +5420,7 @@ with gooddata_api_client.ApiClient() as api_client: ), description="Sales for all the data available.", id="total-sales", + is_hidden=False, modified_at="["2023-07-20 12:30"]", modified_by=DeclarativeUserIdentifier( id="employee123", diff --git a/gooddata-api-client/docs/MetricValueChange.md b/gooddata-api-client/docs/MetricValueChange.md new file mode 100644 index 000000000..7da4d96a8 --- /dev/null +++ b/gooddata-api-client/docs/MetricValueChange.md @@ -0,0 +1,21 @@ +# MetricValueChange + +Individual change analysis data item + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**attribute_name** | **str** | The name of the attribute being analyzed | +**attribute_value** | **str** | The value of the attribute being analyzed | +**attribute_values_change_mean** | **float** | The mean of attribute value changes for the attribute being analyzed | +**attribute_values_change_std** | **float** | The standard deviation of attribute value changes for the attribute being analyzed | +**is_significant_change** | **bool** | Whether the change is statistically significant | +**metric_value_delta** | **float** | The delta between analyzed and reference periods | +**metric_value_delta_abs** | **float** | The absolute delta between analyzed and reference periods | +**metric_value_in_analyzed_period** | **float** | The metric value in the analyzed period | +**metric_value_in_reference_period** | **float** | The metric value in the reference period | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/Notes.md b/gooddata-api-client/docs/Notes.md index 3ed862a5b..eff8235b9 100644 --- a/gooddata-api-client/docs/Notes.md +++ b/gooddata-api-client/docs/Notes.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**note** | [**[Note]**](Note.md) | | +**note** | [**[Note]**](Note.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/OrganizationControllerApi.md b/gooddata-api-client/docs/OrganizationControllerApi.md index 815263cc7..ffa487797 100644 --- a/gooddata-api-client/docs/OrganizationControllerApi.md +++ b/gooddata-api-client/docs/OrganizationControllerApi.md @@ -299,17 +299,6 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="hostname_example", name="name_example", - oauth_client_id="oauth_client_id_example", - oauth_client_secret="oauth_client_secret_example", - oauth_custom_auth_attributes={ - "key": "key_example", - }, - oauth_custom_scopes=[ - "oauth_custom_scopes_example", - ], - oauth_issuer_id="myOidcProvider", - oauth_issuer_location="oauth_issuer_location_example", - oauth_subject_id_claim="oid", ), id="id1", relationships=JsonApiOrganizationInRelationships( @@ -502,17 +491,6 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="hostname_example", name="name_example", - oauth_client_id="oauth_client_id_example", - oauth_client_secret="oauth_client_secret_example", - oauth_custom_auth_attributes={ - "key": "key_example", - }, - oauth_custom_scopes=[ - "oauth_custom_scopes_example", - ], - oauth_issuer_id="myOidcProvider", - oauth_issuer_location="oauth_issuer_location_example", - oauth_subject_id_claim="oid", ), id="id1", relationships=JsonApiOrganizationInRelationships( diff --git a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md index f9e243d0c..137a75c44 100644 --- a/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/OrganizationDeclarativeAPIsApi.md @@ -289,17 +289,6 @@ with gooddata_api_client.ApiClient() as api_client: type="identityProvider", ), name="Alpha corporation", - oauth_client_id="oauth_client_id_example", - oauth_client_secret="oauth_client_secret_example", - oauth_custom_auth_attributes={ - "key": "key_example", - }, - oauth_custom_scopes=[ - "oauth_custom_scopes_example", - ], - oauth_issuer_id="myOidcProvider", - oauth_issuer_location="oauth_issuer_location_example", - oauth_subject_id_claim="oid", permissions=[ DeclarativeOrganizationPermission( assignee=AssigneeIdentifier( @@ -497,16 +486,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=AutomationMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=AutomationMetadata(), modified_at="2023-07-20 12:30", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -820,6 +800,7 @@ with gooddata_api_client.ApiClient() as api_client: ), description="Sales for all the data available.", id="total-sales", + is_hidden=False, modified_at="["2023-07-20 12:30"]", modified_by=DeclarativeUserIdentifier( id="employee123", diff --git a/gooddata-api-client/docs/OrganizationEntityAPIsApi.md b/gooddata-api-client/docs/OrganizationEntityAPIsApi.md index 7c68fe2b2..3489b723a 100644 --- a/gooddata-api-client/docs/OrganizationEntityAPIsApi.md +++ b/gooddata-api-client/docs/OrganizationEntityAPIsApi.md @@ -597,17 +597,6 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="hostname_example", name="name_example", - oauth_client_id="oauth_client_id_example", - oauth_client_secret="oauth_client_secret_example", - oauth_custom_auth_attributes={ - "key": "key_example", - }, - oauth_custom_scopes=[ - "oauth_custom_scopes_example", - ], - oauth_issuer_id="myOidcProvider", - oauth_issuer_location="oauth_issuer_location_example", - oauth_subject_id_claim="oid", ), id="id1", relationships=JsonApiOrganizationInRelationships( @@ -800,17 +789,6 @@ with gooddata_api_client.ApiClient() as api_client: ], hostname="hostname_example", name="name_example", - oauth_client_id="oauth_client_id_example", - oauth_client_secret="oauth_client_secret_example", - oauth_custom_auth_attributes={ - "key": "key_example", - }, - oauth_custom_scopes=[ - "oauth_custom_scopes_example", - ], - oauth_issuer_id="myOidcProvider", - oauth_issuer_location="oauth_issuer_location_example", - oauth_subject_id_claim="oid", ), id="id1", relationships=JsonApiOrganizationInRelationships( diff --git a/gooddata-api-client/docs/QualityIssue.md b/gooddata-api-client/docs/QualityIssue.md index e4520e125..c81242e0e 100644 --- a/gooddata-api-client/docs/QualityIssue.md +++ b/gooddata-api-client/docs/QualityIssue.md @@ -1,13 +1,14 @@ # QualityIssue +List of quality issues (available when status is COMPLETED) ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**code** | **str** | | -**detail** | **{str: ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},)}** | | -**objects** | [**[QualityIssueObject]**](QualityIssueObject.md) | | -**severity** | **str** | | +**code** | **str** | Quality issue code | +**detail** | **{str: ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},)}** | Detailed information about the quality issue | +**objects** | [**[QualityIssueObject]**](QualityIssueObject.md) | List of objects affected by this quality issue | +**severity** | **str** | Severity level | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/QualityIssueObject.md b/gooddata-api-client/docs/QualityIssueObject.md index 73628533a..95ca7c074 100644 --- a/gooddata-api-client/docs/QualityIssueObject.md +++ b/gooddata-api-client/docs/QualityIssueObject.md @@ -1,11 +1,13 @@ # QualityIssueObject +List of objects affected by this quality issue ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**id** | **str** | | -**type** | **str** | | +**id** | **str** | Object ID | +**type** | **str** | Object type | +**workspace_id** | **str** | Workspace ID where the object belongs | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/gooddata-api-client/docs/QualityIssuesCalculationStatusResponse.md b/gooddata-api-client/docs/QualityIssuesCalculationStatusResponse.md new file mode 100644 index 000000000..08a5643e1 --- /dev/null +++ b/gooddata-api-client/docs/QualityIssuesCalculationStatusResponse.md @@ -0,0 +1,14 @@ +# QualityIssuesCalculationStatusResponse + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**status** | **str** | Current status of the calculation | +**error** | **str** | Error message (available when status is FAILED or NOT_FOUND) | [optional] +**issues** | [**[QualityIssue]**](QualityIssue.md) | List of quality issues (available when status is COMPLETED) | [optional] +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/SmartFunctionsApi.md b/gooddata-api-client/docs/SmartFunctionsApi.md index 7c122dfba..4e430d03e 100644 --- a/gooddata-api-client/docs/SmartFunctionsApi.md +++ b/gooddata-api-client/docs/SmartFunctionsApi.md @@ -14,14 +14,17 @@ Method | HTTP request | Description [**clustering**](SmartFunctionsApi.md#clustering) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/clustering/{resultId} | (EXPERIMENTAL) Smart functions - Clustering [**clustering_result**](SmartFunctionsApi.md#clustering_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/clustering/result/{resultId} | (EXPERIMENTAL) Smart functions - Clustering Result [**create_memory_item**](SmartFunctionsApi.md#create_memory_item) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/memory | (EXPERIMENTAL) Create new memory item +[**created_by**](SmartFunctionsApi.md#created_by) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/createdBy | Get Analytics Catalog CreatedBy [**forecast**](SmartFunctionsApi.md#forecast) | **POST** /api/v1/actions/workspaces/{workspaceId}/execution/functions/forecast/{resultId} | (BETA) Smart functions - Forecast [**forecast_result**](SmartFunctionsApi.md#forecast_result) | **GET** /api/v1/actions/workspaces/{workspaceId}/execution/functions/forecast/result/{resultId} | (BETA) Smart functions - Forecast Result [**get_memory_item**](SmartFunctionsApi.md#get_memory_item) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/memory/{memoryId} | (EXPERIMENTAL) Get memory item [**get_quality_issues**](SmartFunctionsApi.md#get_quality_issues) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/issues | Get Quality Issues +[**get_quality_issues_calculation_status**](SmartFunctionsApi.md#get_quality_issues_calculation_status) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/issues/status/{processId} | Get Quality Issues Calculation Status [**list_memory_items**](SmartFunctionsApi.md#list_memory_items) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/memory | (EXPERIMENTAL) List all memory items [**remove_memory_item**](SmartFunctionsApi.md#remove_memory_item) | **DELETE** /api/v1/actions/workspaces/{workspaceId}/ai/memory/{memoryId} | (EXPERIMENTAL) Remove memory item [**resolve_llm_endpoints**](SmartFunctionsApi.md#resolve_llm_endpoints) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/resolveLlmEndpoints | Get Active LLM Endpoints for this workspace [**tags**](SmartFunctionsApi.md#tags) | **GET** /api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/tags | Get Analytics Catalog Tags +[**trigger_quality_issues_calculation**](SmartFunctionsApi.md#trigger_quality_issues_calculation) | **POST** /api/v1/actions/workspaces/{workspaceId}/ai/issues/triggerCheck | Trigger Quality Issues Calculation [**update_memory_item**](SmartFunctionsApi.md#update_memory_item) | **PUT** /api/v1/actions/workspaces/{workspaceId}/ai/memory/{memoryId} | (EXPERIMENTAL) Update memory item [**validate_llm_endpoint**](SmartFunctionsApi.md#validate_llm_endpoint) | **POST** /api/v1/actions/ai/llmEndpoint/test | Validate LLM Endpoint [**validate_llm_endpoint_by_id**](SmartFunctionsApi.md#validate_llm_endpoint_by_id) | **POST** /api/v1/actions/ai/llmEndpoint/{llmEndpointId}/test | Validate LLM Endpoint By Id @@ -57,6 +60,7 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = smart_functions_api.SmartFunctionsApi(api_client) workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier chat_request = ChatRequest( + include_hidden=False, limit_create=3, limit_create_context=10, limit_search=5, @@ -222,6 +226,7 @@ with gooddata_api_client.ApiClient() as api_client: api_instance = smart_functions_api.SmartFunctionsApi(api_client) workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier chat_request = ChatRequest( + include_hidden=False, limit_create=3, limit_create_context=10, limit_search=5, @@ -838,6 +843,73 @@ No authorization required - **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) + +# **created_by** +> AnalyticsCatalogCreatedBy created_by(workspace_id) + +Get Analytics Catalog CreatedBy + +Returns a list of Users who created any object for this workspace + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import smart_functions_api +from gooddata_api_client.model.analytics_catalog_created_by import AnalyticsCatalogCreatedBy +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = smart_functions_api.SmartFunctionsApi(api_client) + workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier + + # example passing only required values which don't have defaults set + try: + # Get Analytics Catalog CreatedBy + api_response = api_instance.created_by(workspace_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling SmartFunctionsApi->created_by: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + +### Return type + +[**AnalyticsCatalogCreatedBy**](AnalyticsCatalogCreatedBy.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + ### HTTP response details | Status code | Description | Response headers | @@ -1143,6 +1215,75 @@ No authorization required - **Accept**: application/json +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_quality_issues_calculation_status** +> QualityIssuesCalculationStatusResponse get_quality_issues_calculation_status(workspace_id, process_id) + +Get Quality Issues Calculation Status + +Returns the status of a quality issues calculation process identified by process ID. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import smart_functions_api +from gooddata_api_client.model.quality_issues_calculation_status_response import QualityIssuesCalculationStatusResponse +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = smart_functions_api.SmartFunctionsApi(api_client) + workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier + process_id = "processId_example" # str | + + # example passing only required values which don't have defaults set + try: + # Get Quality Issues Calculation Status + api_response = api_instance.get_quality_issues_calculation_status(workspace_id, process_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling SmartFunctionsApi->get_quality_issues_calculation_status: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + **process_id** | **str**| | + +### Return type + +[**QualityIssuesCalculationStatusResponse**](QualityIssuesCalculationStatusResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + ### HTTP response details | Status code | Description | Response headers | @@ -1411,6 +1552,73 @@ No authorization required - **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) + +# **trigger_quality_issues_calculation** +> TriggerQualityIssuesCalculationResponse trigger_quality_issues_calculation(workspace_id) + +Trigger Quality Issues Calculation + +Triggers asynchronous calculation of metadata quality issues and returns a process ID for status tracking. + +### Example + + +```python +import time +import gooddata_api_client +from gooddata_api_client.api import smart_functions_api +from gooddata_api_client.model.trigger_quality_issues_calculation_response import TriggerQualityIssuesCalculationResponse +from pprint import pprint +# Defining the host is optional and defaults to http://localhost +# See configuration.py for a list of all supported configuration parameters. +configuration = gooddata_api_client.Configuration( + host = "http://localhost" +) + + +# Enter a context with an instance of the API client +with gooddata_api_client.ApiClient() as api_client: + # Create an instance of the API class + api_instance = smart_functions_api.SmartFunctionsApi(api_client) + workspace_id = "/6bUUGjjNSwg0_bs" # str | Workspace identifier + + # example passing only required values which don't have defaults set + try: + # Trigger Quality Issues Calculation + api_response = api_instance.trigger_quality_issues_calculation(workspace_id) + pprint(api_response) + except gooddata_api_client.ApiException as e: + print("Exception when calling SmartFunctionsApi->trigger_quality_issues_calculation: %s\n" % e) +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **workspace_id** | **str**| Workspace identifier | + +### Return type + +[**TriggerQualityIssuesCalculationResponse**](TriggerQualityIssuesCalculationResponse.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + ### HTTP response details | Status code | Description | Response headers | diff --git a/gooddata-api-client/docs/SqlColumn.md b/gooddata-api-client/docs/SqlColumn.md index 13e3460b0..0c4a5b92d 100644 --- a/gooddata-api-client/docs/SqlColumn.md +++ b/gooddata-api-client/docs/SqlColumn.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data_type** | **str** | Column type | **name** | **str** | Column name | +**description** | **str** | Column description/comment from 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/TriggerQualityIssuesCalculationResponse.md b/gooddata-api-client/docs/TriggerQualityIssuesCalculationResponse.md new file mode 100644 index 000000000..b13ea4664 --- /dev/null +++ b/gooddata-api-client/docs/TriggerQualityIssuesCalculationResponse.md @@ -0,0 +1,13 @@ +# TriggerQualityIssuesCalculationResponse + + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**process_id** | **str** | Process ID for tracking the calculation status | +**status** | **str** | Current status of the calculation | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/gooddata-api-client/docs/WorkspaceObjectControllerApi.md b/gooddata-api-client/docs/WorkspaceObjectControllerApi.md index 7b84f861c..6dff092d6 100644 --- a/gooddata-api-client/docs/WorkspaceObjectControllerApi.md +++ b/gooddata-api-client/docs/WorkspaceObjectControllerApi.md @@ -404,16 +404,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=JsonApiAutomationInAttributesMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=JsonApiAutomationInAttributesMetadata(), raw_exports=[ JsonApiAutomationInAttributesRawExportsInner( request_payload=RawExportAutomationRequest( @@ -6572,16 +6563,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=JsonApiAutomationInAttributesMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=JsonApiAutomationInAttributesMetadata(), raw_exports=[ JsonApiAutomationInAttributesRawExportsInner( request_payload=RawExportAutomationRequest( @@ -8221,16 +8203,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=JsonApiAutomationInAttributesMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=JsonApiAutomationInAttributesMetadata(), raw_exports=[ JsonApiAutomationInAttributesRawExportsInner( request_payload=RawExportAutomationRequest( diff --git a/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md index 3768d4ff0..84520ffa7 100644 --- a/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md +++ b/gooddata-api-client/docs/WorkspacesDeclarativeAPIsApi.md @@ -296,6 +296,7 @@ with gooddata_api_client.ApiClient() as api_client: ), description="Sales for all the data available.", id="total-sales", + is_hidden=False, modified_at="["2023-07-20 12:30"]", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -667,16 +668,7 @@ with gooddata_api_client.ApiClient() as api_client: ), ), ], - metadata=AutomationMetadata( - visible_filters=[ - VisibleFilter( - is_all_time_date_filter=False, - local_identifier="local_identifier_example", - title="title_example", - ), - ], - widget="widget_example", - ), + metadata=AutomationMetadata(), modified_at="2023-07-20 12:30", modified_by=DeclarativeUserIdentifier( id="employee123", @@ -990,6 +982,7 @@ with gooddata_api_client.ApiClient() as api_client: ), description="Sales for all the data available.", id="total-sales", + is_hidden=False, modified_at="["2023-07-20 12:30"]", modified_by=DeclarativeUserIdentifier( id="employee123", diff --git a/gooddata-api-client/docs/Xliff.md b/gooddata-api-client/docs/Xliff.md index 6bdde8c9a..6bfea0d90 100644 --- a/gooddata-api-client/docs/Xliff.md +++ b/gooddata-api-client/docs/Xliff.md @@ -4,7 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**file** | [**[File]**](File.md) | | +**file** | [**[File]**](File.md) | | [optional] **other_attributes** | **{str: (str,)}** | | [optional] **space** | **str** | | [optional] **src_lang** | **str** | | [optional] diff --git a/gooddata-api-client/gooddata_api_client/api/actions_api.py b/gooddata-api-client/gooddata_api_client/api/actions_api.py index d7dd1388c..090f596ee 100644 --- a/gooddata-api-client/gooddata_api_client/api/actions_api.py +++ b/gooddata-api-client/gooddata_api_client/api/actions_api.py @@ -29,11 +29,15 @@ from gooddata_api_client.model.afm_valid_descendants_response import AfmValidDescendantsResponse 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.analytics_catalog_created_by import AnalyticsCatalogCreatedBy from gooddata_api_client.model.analytics_catalog_tags import AnalyticsCatalogTags from gooddata_api_client.model.anomaly_detection_request import AnomalyDetectionRequest from gooddata_api_client.model.anomaly_detection_result import AnomalyDetectionResult from gooddata_api_client.model.api_entitlement import ApiEntitlement from gooddata_api_client.model.available_assignees import AvailableAssignees +from gooddata_api_client.model.change_analysis_request import ChangeAnalysisRequest +from gooddata_api_client.model.change_analysis_response import ChangeAnalysisResponse +from gooddata_api_client.model.change_analysis_result import ChangeAnalysisResult from gooddata_api_client.model.chat_history_request import ChatHistoryRequest from gooddata_api_client.model.chat_history_result import ChatHistoryResult from gooddata_api_client.model.chat_request import ChatRequest @@ -74,6 +78,7 @@ from gooddata_api_client.model.organization_permission_assignment import OrganizationPermissionAssignment from gooddata_api_client.model.platform_usage import PlatformUsage from gooddata_api_client.model.platform_usage_request import PlatformUsageRequest +from gooddata_api_client.model.quality_issues_calculation_status_response import QualityIssuesCalculationStatusResponse from gooddata_api_client.model.raw_export_request import RawExportRequest from gooddata_api_client.model.resolve_settings_request import ResolveSettingsRequest from gooddata_api_client.model.resolved_llm_endpoints import ResolvedLlmEndpoints @@ -94,6 +99,7 @@ from gooddata_api_client.model.test_request import TestRequest from gooddata_api_client.model.test_response import TestResponse from gooddata_api_client.model.trigger_automation_request import TriggerAutomationRequest +from gooddata_api_client.model.trigger_quality_issues_calculation_response import TriggerQualityIssuesCalculationResponse from gooddata_api_client.model.validate_llm_endpoint_by_id_request import ValidateLLMEndpointByIdRequest from gooddata_api_client.model.validate_llm_endpoint_request import ValidateLLMEndpointRequest from gooddata_api_client.model.validate_llm_endpoint_response import ValidateLLMEndpointResponse @@ -730,6 +736,131 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.change_analysis_endpoint = _Endpoint( + settings={ + 'response_type': (ChangeAnalysisResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis', + 'operation_id': 'change_analysis', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'change_analysis_request', + ], + 'required': [ + 'workspace_id', + 'change_analysis_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + 'workspace_id', + ] + }, + root_map={ + 'validations': { + ('workspace_id',): { + + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'change_analysis_request': + (ChangeAnalysisRequest,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + }, + 'location_map': { + 'workspace_id': 'path', + 'change_analysis_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + self.change_analysis_result_endpoint = _Endpoint( + settings={ + 'response_type': (ChangeAnalysisResult,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis/result/{resultId}', + 'operation_id': 'change_analysis_result', + '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.check_entity_overrides_endpoint = _Endpoint( settings={ 'response_type': ([IdentifierDuplications],), @@ -1746,6 +1877,62 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.created_by_endpoint = _Endpoint( + settings={ + 'response_type': (AnalyticsCatalogCreatedBy,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/createdBy', + 'operation_id': 'created_by', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + ], + 'required': [ + 'workspace_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,), + }, + '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.dashboard_permissions_endpoint = _Endpoint( settings={ 'response_type': (DashboardPermissions,), @@ -2776,6 +2963,68 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.get_quality_issues_calculation_status_endpoint = _Endpoint( + settings={ + 'response_type': (QualityIssuesCalculationStatusResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/ai/issues/status/{processId}', + 'operation_id': 'get_quality_issues_calculation_status', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'process_id', + ], + 'required': [ + 'workspace_id', + 'process_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,), + 'process_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'process_id': 'processId', + }, + 'location_map': { + 'workspace_id': 'path', + 'process_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [], + }, + api_client=api_client + ) self.get_raw_export_endpoint = _Endpoint( settings={ 'response_type': (file_type,), @@ -5228,6 +5477,62 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.trigger_quality_issues_calculation_endpoint = _Endpoint( + settings={ + 'response_type': (TriggerQualityIssuesCalculationResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/ai/issues/triggerCheck', + 'operation_id': 'trigger_quality_issues_calculation', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + ], + 'required': [ + 'workspace_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,), + }, + '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.unpause_organization_automations_endpoint = _Endpoint( settings={ 'response_type': None, @@ -6542,23 +6847,197 @@ def anomaly_detection_result( result_id return self.anomaly_detection_result_endpoint.call_with_http_info(**kwargs) - def available_assignees( + def available_assignees( + self, + workspace_id, + dashboard_id, + **kwargs + ): + """Get Available Assignees # noqa: E501 + + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.available_assignees(workspace_id, dashboard_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): + dashboard_id (str): + + Keyword Args: + _return_http_data_only (bool): response data without head status + code and headers. Default is True. + _preload_content (bool): if False, the urllib3.HTTPResponse object + will be returned without reading/decoding response data. + Default is True. + _request_timeout (int/float/tuple): timeout setting for this request. If + one number provided, it will be total request timeout. It can also + be a pair (tuple) of (connection, read) timeouts. + Default is None. + _check_input_type (bool): specifies if type checking + should be done one the data sent to the server. + Default is True. + _check_return_type (bool): specifies if type checking + should be done one the data received from the server. + Default is True. + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _content_type (str/None): force body content-type. + Default is None and content-type will be predicted by allowed + content-types and body. + _host_index (int/None): specifies the index of the server + that we want to use. + Default is read from the configuration. + _request_auths (list): set to override the auth_settings for an a single + request; this effectively ignores the authentication + in the spec for a single request. + Default is None + async_req (bool): execute request asynchronously + + Returns: + AvailableAssignees + If the method is called asynchronously, returns the request + thread. + """ + kwargs['async_req'] = kwargs.get( + 'async_req', False + ) + kwargs['_return_http_data_only'] = kwargs.get( + '_return_http_data_only', True + ) + kwargs['_preload_content'] = kwargs.get( + '_preload_content', True + ) + kwargs['_request_timeout'] = kwargs.get( + '_request_timeout', None + ) + kwargs['_check_input_type'] = kwargs.get( + '_check_input_type', True + ) + kwargs['_check_return_type'] = kwargs.get( + '_check_return_type', True + ) + kwargs['_spec_property_naming'] = kwargs.get( + '_spec_property_naming', False + ) + kwargs['_content_type'] = kwargs.get( + '_content_type') + kwargs['_host_index'] = kwargs.get('_host_index') + kwargs['_request_auths'] = kwargs.get('_request_auths', None) + kwargs['workspace_id'] = \ + workspace_id + kwargs['dashboard_id'] = \ + dashboard_id + return self.available_assignees_endpoint.call_with_http_info(**kwargs) + + def cancel_executions( + self, + workspace_id, + afm_cancel_tokens, + **kwargs + ): + """Applies all the given cancel tokens. # noqa: E501 + + Each cancel token corresponds to one unique execution request for the same result id. If all cancel tokens for the same result id are applied, the execution for this result id is cancelled. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.cancel_executions(workspace_id, afm_cancel_tokens, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): Workspace identifier + afm_cancel_tokens (AfmCancelTokens): + + 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: + AfmCancelTokens + 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_cancel_tokens'] = \ + afm_cancel_tokens + return self.cancel_executions_endpoint.call_with_http_info(**kwargs) + + def change_analysis( self, workspace_id, - dashboard_id, + change_analysis_request, **kwargs ): - """Get Available Assignees # noqa: E501 + """Compute change analysis # noqa: E501 + Computes change analysis for the provided execution 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.available_assignees(workspace_id, dashboard_id, async_req=True) + >>> thread = api.change_analysis(workspace_id, change_analysis_request, async_req=True) >>> result = thread.get() Args: - workspace_id (str): - dashboard_id (str): + workspace_id (str): Workspace identifier + change_analysis_request (ChangeAnalysisRequest): Keyword Args: _return_http_data_only (bool): response data without head status @@ -6593,7 +7072,7 @@ def available_assignees( async_req (bool): execute request asynchronously Returns: - AvailableAssignees + ChangeAnalysisResponse If the method is called asynchronously, returns the request thread. """ @@ -6624,28 +7103,28 @@ def available_assignees( kwargs['_request_auths'] = kwargs.get('_request_auths', None) kwargs['workspace_id'] = \ workspace_id - kwargs['dashboard_id'] = \ - dashboard_id - return self.available_assignees_endpoint.call_with_http_info(**kwargs) + kwargs['change_analysis_request'] = \ + change_analysis_request + return self.change_analysis_endpoint.call_with_http_info(**kwargs) - def cancel_executions( + def change_analysis_result( self, workspace_id, - afm_cancel_tokens, + result_id, **kwargs ): - """Applies all the given cancel tokens. # noqa: E501 + """Get change analysis result # noqa: E501 - Each cancel token corresponds to one unique execution request for the same result id. If all cancel tokens for the same result id are applied, the execution for this result id is cancelled. # noqa: E501 + Gets change analysis 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.cancel_executions(workspace_id, afm_cancel_tokens, async_req=True) + >>> thread = api.change_analysis_result(workspace_id, result_id, async_req=True) >>> result = thread.get() Args: workspace_id (str): Workspace identifier - afm_cancel_tokens (AfmCancelTokens): + result_id (str): Result ID Keyword Args: _return_http_data_only (bool): response data without head status @@ -6680,7 +7159,7 @@ def cancel_executions( async_req (bool): execute request asynchronously Returns: - AfmCancelTokens + ChangeAnalysisResult If the method is called asynchronously, returns the request thread. """ @@ -6711,9 +7190,9 @@ def cancel_executions( kwargs['_request_auths'] = kwargs.get('_request_auths', None) kwargs['workspace_id'] = \ workspace_id - kwargs['afm_cancel_tokens'] = \ - afm_cancel_tokens - return self.cancel_executions_endpoint.call_with_http_info(**kwargs) + kwargs['result_id'] = \ + result_id + return self.change_analysis_result_endpoint.call_with_http_info(**kwargs) def check_entity_overrides( self, @@ -8125,6 +8604,89 @@ def create_tabular_export( tabular_export_request return self.create_tabular_export_endpoint.call_with_http_info(**kwargs) + def created_by( + self, + workspace_id, + **kwargs + ): + """Get Analytics Catalog CreatedBy # noqa: E501 + + Returns a list of Users who created any object for this 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.created_by(workspace_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): Workspace identifier + + 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: + AnalyticsCatalogCreatedBy + 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.created_by_endpoint.call_with_http_info(**kwargs) + def dashboard_permissions( self, workspace_id, @@ -9589,6 +10151,93 @@ def get_quality_issues( workspace_id return self.get_quality_issues_endpoint.call_with_http_info(**kwargs) + def get_quality_issues_calculation_status( + self, + workspace_id, + process_id, + **kwargs + ): + """Get Quality Issues Calculation Status # noqa: E501 + + Returns the status of a quality issues calculation process identified by process ID. # 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_quality_issues_calculation_status(workspace_id, process_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): Workspace identifier + process_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: + QualityIssuesCalculationStatusResponse + 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['process_id'] = \ + process_id + return self.get_quality_issues_calculation_status_endpoint.call_with_http_info(**kwargs) + def get_raw_export( self, workspace_id, @@ -13398,6 +14047,89 @@ def trigger_existing_automation( automation_id return self.trigger_existing_automation_endpoint.call_with_http_info(**kwargs) + def trigger_quality_issues_calculation( + self, + workspace_id, + **kwargs + ): + """Trigger Quality Issues Calculation # noqa: E501 + + Triggers asynchronous calculation of metadata quality issues and returns a process ID for status tracking. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.trigger_quality_issues_calculation(workspace_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): Workspace identifier + + 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: + TriggerQualityIssuesCalculationResponse + 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.trigger_quality_issues_calculation_endpoint.call_with_http_info(**kwargs) + def unpause_organization_automations( self, organization_automation_management_bulk_request, diff --git a/gooddata-api-client/gooddata_api_client/api/computation_api.py b/gooddata-api-client/gooddata_api_client/api/computation_api.py index 7d2d77d14..d99a4b863 100644 --- a/gooddata-api-client/gooddata_api_client/api/computation_api.py +++ b/gooddata-api-client/gooddata_api_client/api/computation_api.py @@ -28,6 +28,9 @@ from gooddata_api_client.model.afm_valid_descendants_response import AfmValidDescendantsResponse 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.change_analysis_request import ChangeAnalysisRequest +from gooddata_api_client.model.change_analysis_response import ChangeAnalysisResponse +from gooddata_api_client.model.change_analysis_result import ChangeAnalysisResult from gooddata_api_client.model.column_statistics_request import ColumnStatisticsRequest from gooddata_api_client.model.column_statistics_response import ColumnStatisticsResponse from gooddata_api_client.model.elements_request import ElementsRequest @@ -50,6 +53,131 @@ def __init__(self, api_client=None): if api_client is None: api_client = ApiClient() self.api_client = api_client + self.change_analysis_endpoint = _Endpoint( + settings={ + 'response_type': (ChangeAnalysisResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis', + 'operation_id': 'change_analysis', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'change_analysis_request', + ], + 'required': [ + 'workspace_id', + 'change_analysis_request', + ], + 'nullable': [ + ], + 'enum': [ + ], + 'validation': [ + 'workspace_id', + ] + }, + root_map={ + 'validations': { + ('workspace_id',): { + + 'regex': { + 'pattern': r'^(?!\.)[.A-Za-z0-9_-]{1,255}$', # noqa: E501 + }, + }, + }, + 'allowed_values': { + }, + 'openapi_types': { + 'workspace_id': + (str,), + 'change_analysis_request': + (ChangeAnalysisRequest,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + }, + 'location_map': { + 'workspace_id': 'path', + 'change_analysis_request': 'body', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [ + 'application/json' + ] + }, + api_client=api_client + ) + self.change_analysis_result_endpoint = _Endpoint( + settings={ + 'response_type': (ChangeAnalysisResult,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis/result/{resultId}', + 'operation_id': 'change_analysis_result', + '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.column_statistics_endpoint = _Endpoint( settings={ 'response_type': (ColumnStatisticsResponse,), @@ -769,6 +897,180 @@ def __init__(self, api_client=None): api_client=api_client ) + def change_analysis( + self, + workspace_id, + change_analysis_request, + **kwargs + ): + """Compute change analysis # noqa: E501 + + Computes change analysis for the provided execution 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.change_analysis(workspace_id, change_analysis_request, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): Workspace identifier + change_analysis_request (ChangeAnalysisRequest): + + 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: + ChangeAnalysisResponse + 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['change_analysis_request'] = \ + change_analysis_request + return self.change_analysis_endpoint.call_with_http_info(**kwargs) + + def change_analysis_result( + self, + workspace_id, + result_id, + **kwargs + ): + """Get change analysis result # noqa: E501 + + Gets change analysis 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.change_analysis_result(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: + ChangeAnalysisResult + 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.change_analysis_result_endpoint.call_with_http_info(**kwargs) + def column_statistics( self, data_source_id, diff --git a/gooddata-api-client/gooddata_api_client/api/smart_functions_api.py b/gooddata-api-client/gooddata_api_client/api/smart_functions_api.py index 0940f523d..865f365b3 100644 --- a/gooddata-api-client/gooddata_api_client/api/smart_functions_api.py +++ b/gooddata-api-client/gooddata_api_client/api/smart_functions_api.py @@ -22,6 +22,7 @@ none_type, validate_and_convert_types ) +from gooddata_api_client.model.analytics_catalog_created_by import AnalyticsCatalogCreatedBy from gooddata_api_client.model.analytics_catalog_tags import AnalyticsCatalogTags from gooddata_api_client.model.anomaly_detection_request import AnomalyDetectionRequest from gooddata_api_client.model.anomaly_detection_result import AnomalyDetectionResult @@ -36,10 +37,12 @@ from gooddata_api_client.model.forecast_result import ForecastResult from gooddata_api_client.model.get_quality_issues_response import GetQualityIssuesResponse from gooddata_api_client.model.memory_item import MemoryItem +from gooddata_api_client.model.quality_issues_calculation_status_response import QualityIssuesCalculationStatusResponse from gooddata_api_client.model.resolved_llm_endpoints import ResolvedLlmEndpoints from gooddata_api_client.model.search_request import SearchRequest from gooddata_api_client.model.search_result import SearchResult from gooddata_api_client.model.smart_function_response import SmartFunctionResponse +from gooddata_api_client.model.trigger_quality_issues_calculation_response import TriggerQualityIssuesCalculationResponse from gooddata_api_client.model.validate_llm_endpoint_by_id_request import ValidateLLMEndpointByIdRequest from gooddata_api_client.model.validate_llm_endpoint_request import ValidateLLMEndpointRequest from gooddata_api_client.model.validate_llm_endpoint_response import ValidateLLMEndpointResponse @@ -719,6 +722,62 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.created_by_endpoint = _Endpoint( + settings={ + 'response_type': (AnalyticsCatalogCreatedBy,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/createdBy', + 'operation_id': 'created_by', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + ], + 'required': [ + 'workspace_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,), + }, + '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.forecast_endpoint = _Endpoint( settings={ 'response_type': (SmartFunctionResponse,), @@ -983,6 +1042,68 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.get_quality_issues_calculation_status_endpoint = _Endpoint( + settings={ + 'response_type': (QualityIssuesCalculationStatusResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/ai/issues/status/{processId}', + 'operation_id': 'get_quality_issues_calculation_status', + 'http_method': 'GET', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + 'process_id', + ], + 'required': [ + 'workspace_id', + 'process_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,), + 'process_id': + (str,), + }, + 'attribute_map': { + 'workspace_id': 'workspaceId', + 'process_id': 'processId', + }, + 'location_map': { + 'workspace_id': 'path', + 'process_id': 'path', + }, + 'collection_format_map': { + } + }, + headers_map={ + 'accept': [ + 'application/json' + ], + 'content_type': [], + }, + api_client=api_client + ) self.list_memory_items_endpoint = _Endpoint( settings={ 'response_type': ([MemoryItem],), @@ -1211,6 +1332,62 @@ def __init__(self, api_client=None): }, api_client=api_client ) + self.trigger_quality_issues_calculation_endpoint = _Endpoint( + settings={ + 'response_type': (TriggerQualityIssuesCalculationResponse,), + 'auth': [], + 'endpoint_path': '/api/v1/actions/workspaces/{workspaceId}/ai/issues/triggerCheck', + 'operation_id': 'trigger_quality_issues_calculation', + 'http_method': 'POST', + 'servers': None, + }, + params_map={ + 'all': [ + 'workspace_id', + ], + 'required': [ + 'workspace_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,), + }, + '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.update_memory_item_endpoint = _Endpoint( settings={ 'response_type': (MemoryItem,), @@ -2266,6 +2443,89 @@ def create_memory_item( memory_item return self.create_memory_item_endpoint.call_with_http_info(**kwargs) + def created_by( + self, + workspace_id, + **kwargs + ): + """Get Analytics Catalog CreatedBy # noqa: E501 + + Returns a list of Users who created any object for this 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.created_by(workspace_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): Workspace identifier + + 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: + AnalyticsCatalogCreatedBy + 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.created_by_endpoint.call_with_http_info(**kwargs) + def forecast( self, workspace_id, @@ -2617,6 +2877,93 @@ def get_quality_issues( workspace_id return self.get_quality_issues_endpoint.call_with_http_info(**kwargs) + def get_quality_issues_calculation_status( + self, + workspace_id, + process_id, + **kwargs + ): + """Get Quality Issues Calculation Status # noqa: E501 + + Returns the status of a quality issues calculation process identified by process ID. # 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_quality_issues_calculation_status(workspace_id, process_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): Workspace identifier + process_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: + QualityIssuesCalculationStatusResponse + 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['process_id'] = \ + process_id + return self.get_quality_issues_calculation_status_endpoint.call_with_http_info(**kwargs) + def list_memory_items( self, workspace_id, @@ -2953,6 +3300,89 @@ def tags( workspace_id return self.tags_endpoint.call_with_http_info(**kwargs) + def trigger_quality_issues_calculation( + self, + workspace_id, + **kwargs + ): + """Trigger Quality Issues Calculation # noqa: E501 + + Triggers asynchronous calculation of metadata quality issues and returns a process ID for status tracking. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + + >>> thread = api.trigger_quality_issues_calculation(workspace_id, async_req=True) + >>> result = thread.get() + + Args: + workspace_id (str): Workspace identifier + + 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: + TriggerQualityIssuesCalculationResponse + 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.trigger_quality_issues_calculation_endpoint.call_with_http_info(**kwargs) + def update_memory_item( self, workspace_id, diff --git a/gooddata-api-client/gooddata_api_client/model/analytics_catalog_created_by.py b/gooddata-api-client/gooddata_api_client/model/analytics_catalog_created_by.py new file mode 100644 index 000000000..c827444d6 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/analytics_catalog_created_by.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.analytics_catalog_user import AnalyticsCatalogUser + globals()['AnalyticsCatalogUser'] = AnalyticsCatalogUser + + +class AnalyticsCatalogCreatedBy(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, 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 { + 'reasoning': (str,), # noqa: E501 + 'users': ([AnalyticsCatalogUser],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'reasoning': 'reasoning', # noqa: E501 + 'users': 'users', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, reasoning, users, *args, **kwargs): # noqa: E501 + """AnalyticsCatalogCreatedBy - a model defined in OpenAPI + + Args: + reasoning (str): Reasoning for error states + users ([AnalyticsCatalogUser]): Users who created any object in the catalog + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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.reasoning = reasoning + 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, reasoning, users, *args, **kwargs): # noqa: E501 + """AnalyticsCatalogCreatedBy - a model defined in OpenAPI + + Args: + reasoning (str): Reasoning for error states + users ([AnalyticsCatalogUser]): Users who created any object in the catalog + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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.reasoning = reasoning + 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/analytics_catalog_user.py b/gooddata-api-client/gooddata_api_client/model/analytics_catalog_user.py new file mode 100644 index 000000000..50fe1b7fe --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/analytics_catalog_user.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 AnalyticsCatalogUser(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, 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 { + 'firstname': (str,), # noqa: E501 + 'lastname': (str,), # noqa: E501 + 'user_id': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'firstname': 'firstname', # noqa: E501 + 'lastname': 'lastname', # noqa: E501 + 'user_id': 'userId', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, firstname, lastname, user_id, *args, **kwargs): # noqa: E501 + """AnalyticsCatalogUser - a model defined in OpenAPI + + Args: + firstname (str): First name of the user who created any objects + lastname (str): Last name of the user who created any objects + user_id (str): User ID of the user who created any objects + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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.firstname = firstname + self.lastname = lastname + self.user_id = user_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, firstname, lastname, user_id, *args, **kwargs): # noqa: E501 + """AnalyticsCatalogUser - a model defined in OpenAPI + + Args: + firstname (str): First name of the user who created any objects + lastname (str): Last name of the user who created any objects + user_id (str): User ID of the user who created any objects + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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.firstname = firstname + self.lastname = lastname + self.user_id = user_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/api_entitlement.py b/gooddata-api-client/gooddata_api_client/model/api_entitlement.py index cc2a3f6a2..17b511fa3 100644 --- a/gooddata-api-client/gooddata_api_client/model/api_entitlement.py +++ b/gooddata-api-client/gooddata_api_client/model/api_entitlement.py @@ -63,7 +63,6 @@ class ApiEntitlement(ModelNormal): 'EXTRACACHE': "ExtraCache", 'HIPAA': "Hipaa", 'PDFEXPORTS': "PdfExports", - 'MANAGEDOIDC': "ManagedOIDC", 'UILOCALIZATION': "UiLocalization", 'TIER': "Tier", 'USERCOUNT': "UserCount", diff --git a/gooddata-api-client/gooddata_api_client/model/attribute_equality_filter.py b/gooddata-api-client/gooddata_api_client/model/attribute_equality_filter.py new file mode 100644 index 000000000..301f8f742 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/attribute_equality_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 + + + +class AttributeEqualityFilter(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, 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_identifier': (str,), # noqa: E501 + 'values': ([str],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'label_identifier': 'labelIdentifier', # noqa: E501 + 'values': 'values', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, label_identifier, values, *args, **kwargs): # noqa: E501 + """AttributeEqualityFilter - a model defined in OpenAPI + + Args: + label_identifier (str): The attribute label identifier to filter on + values ([str]): List of values to match (IN operation) + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.label_identifier = label_identifier + 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, label_identifier, values, *args, **kwargs): # noqa: E501 + """AttributeEqualityFilter - a model defined in OpenAPI + + Args: + label_identifier (str): The attribute label identifier to filter on + values ([str]): List of values to match (IN operation) + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.label_identifier = label_identifier + 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/change_analysis_request.py b/gooddata-api-client/gooddata_api_client/model/change_analysis_request.py new file mode 100644 index 000000000..3f7c625b9 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/change_analysis_request.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.attribute_equality_filter import AttributeEqualityFilter + globals()['AttributeEqualityFilter'] = AttributeEqualityFilter + + +class ChangeAnalysisRequest(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, 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 { + 'analyzed_period': (str,), # noqa: E501 + 'attribute_label_identifiers': ([str],), # noqa: E501 + 'date_attribute_identifier': (str,), # noqa: E501 + 'filters': ([AttributeEqualityFilter],), # noqa: E501 + 'metric_identifier': (str,), # noqa: E501 + 'reference_period': (str,), # noqa: E501 + 'use_smart_attribute_selection': (bool,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'analyzed_period': 'analyzedPeriod', # noqa: E501 + 'attribute_label_identifiers': 'attributeLabelIdentifiers', # noqa: E501 + 'date_attribute_identifier': 'dateAttributeIdentifier', # noqa: E501 + 'filters': 'filters', # noqa: E501 + 'metric_identifier': 'metricIdentifier', # noqa: E501 + 'reference_period': 'referencePeriod', # noqa: E501 + 'use_smart_attribute_selection': 'useSmartAttributeSelection', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, analyzed_period, attribute_label_identifiers, date_attribute_identifier, filters, metric_identifier, reference_period, *args, **kwargs): # noqa: E501 + """ChangeAnalysisRequest - a model defined in OpenAPI + + Args: + analyzed_period (str): The analyzed time period (e.g., '2025-02') + attribute_label_identifiers ([str]): Label identifiers of attributes to analyze for significant changes. If empty, valid attributes will be automatically discovered. + date_attribute_identifier (str): The date attribute identifier to use for time period comparison + filters ([AttributeEqualityFilter]): Optional filters to apply. + metric_identifier (str): The metric identifier to analyze for changes + reference_period (str): The reference time period (e.g., '2025-01') + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + use_smart_attribute_selection (bool): Whether to use smart attribute selection (LLM-based) instead of discovering all valid attributes. If true, GenAI will intelligently select the most relevant attributes for change analysis. If false or not set, all valid attributes will be discovered using Calcique. Smart attribute selection applies only when no attributes are provided.. [optional] if omitted the server will use the default value of False # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', True) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + self = super(OpenApiModel, cls).__new__(cls) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.analyzed_period = analyzed_period + self.attribute_label_identifiers = attribute_label_identifiers + self.date_attribute_identifier = date_attribute_identifier + self.filters = filters + self.metric_identifier = metric_identifier + self.reference_period = reference_period + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, analyzed_period, attribute_label_identifiers, date_attribute_identifier, filters, metric_identifier, reference_period, *args, **kwargs): # noqa: E501 + """ChangeAnalysisRequest - a model defined in OpenAPI + + Args: + analyzed_period (str): The analyzed time period (e.g., '2025-02') + attribute_label_identifiers ([str]): Label identifiers of attributes to analyze for significant changes. If empty, valid attributes will be automatically discovered. + date_attribute_identifier (str): The date attribute identifier to use for time period comparison + filters ([AttributeEqualityFilter]): Optional filters to apply. + metric_identifier (str): The metric identifier to analyze for changes + reference_period (str): The reference time period (e.g., '2025-01') + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its discriminator because we passed in + _visited_composed_classes = (Animal,) + use_smart_attribute_selection (bool): Whether to use smart attribute selection (LLM-based) instead of discovering all valid attributes. If true, GenAI will intelligently select the most relevant attributes for change analysis. If false or not set, all valid attributes will be discovered using Calcique. Smart attribute selection applies only when no attributes are provided.. [optional] if omitted the server will use the default value of False # noqa: E501 + """ + + _check_type = kwargs.pop('_check_type', True) + _spec_property_naming = kwargs.pop('_spec_property_naming', False) + _path_to_item = kwargs.pop('_path_to_item', ()) + _configuration = kwargs.pop('_configuration', None) + _visited_composed_classes = kwargs.pop('_visited_composed_classes', ()) + + if args: + for arg in args: + if isinstance(arg, dict): + kwargs.update(arg) + else: + raise ApiTypeError( + "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % ( + args, + self.__class__.__name__, + ), + path_to_item=_path_to_item, + valid_classes=(self.__class__,), + ) + + self._data_store = {} + self._check_type = _check_type + self._spec_property_naming = _spec_property_naming + self._path_to_item = _path_to_item + self._configuration = _configuration + self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + + self.analyzed_period = analyzed_period + self.attribute_label_identifiers = attribute_label_identifiers + self.date_attribute_identifier = date_attribute_identifier + self.filters = filters + self.metric_identifier = metric_identifier + self.reference_period = reference_period + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/change_analysis_response.py b/gooddata-api-client/gooddata_api_client/model/change_analysis_response.py new file mode 100644 index 000000000..9b17e82f6 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/change_analysis_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_links import ExecutionLinks + globals()['ExecutionLinks'] = ExecutionLinks + + +class ChangeAnalysisResponse(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, 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': (ExecutionLinks,), # 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, links, *args, **kwargs): # noqa: E501 + """ChangeAnalysisResponse - a model defined in OpenAPI + + Args: + 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.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, links, *args, **kwargs): # noqa: E501 + """ChangeAnalysisResponse - a model defined in OpenAPI + + Args: + 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.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/change_analysis_result.py b/gooddata-api-client/gooddata_api_client/model/change_analysis_result.py new file mode 100644 index 000000000..41c1caf4a --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/change_analysis_result.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.metric_value_change import MetricValueChange + globals()['MetricValueChange'] = MetricValueChange + + +class ChangeAnalysisResult(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, 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': ([MetricValueChange],), # 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 + """ChangeAnalysisResult - a model defined in OpenAPI + + Args: + data ([MetricValueChange]): The change analysis result data containing significant changes. + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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 + """ChangeAnalysisResult - a model defined in OpenAPI + + Args: + data ([MetricValueChange]): The change analysis result data containing significant changes. + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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/chat_request.py b/gooddata-api-client/gooddata_api_client/model/chat_request.py index 8fa16a9ec..452da267d 100644 --- a/gooddata-api-client/gooddata_api_client/model/chat_request.py +++ b/gooddata-api-client/gooddata_api_client/model/chat_request.py @@ -92,6 +92,7 @@ def openapi_types(): lazy_import() return { 'question': (str,), # noqa: E501 + 'include_hidden': (bool,), # noqa: E501 'limit_create': (int,), # noqa: E501 'limit_create_context': (int,), # noqa: E501 'limit_search': (int,), # noqa: E501 @@ -109,6 +110,7 @@ def discriminator(): attribute_map = { 'question': 'question', # noqa: E501 + 'include_hidden': 'includeHidden', # noqa: E501 'limit_create': 'limitCreate', # noqa: E501 'limit_create_context': 'limitCreateContext', # noqa: E501 'limit_search': 'limitSearch', # noqa: E501 @@ -163,6 +165,7 @@ def _from_openapi_data(cls, question, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + include_hidden (bool): If true, includes hidden objects in search and visualization building. If false (default), excludes objects where isHidden=true.. [optional] if omitted the server will use the default value of False # noqa: E501 limit_create (int): Maximum number of created results.. [optional] if omitted the server will use the default value of 3 # noqa: E501 limit_create_context (int): Maximum number of relevant objects included into context for LLM (for each object type).. [optional] if omitted the server will use the default value of 10 # noqa: E501 limit_search (int): Maximum number of search results.. [optional] if omitted the server will use the default value of 5 # noqa: E501 @@ -260,6 +263,7 @@ def __init__(self, question, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + include_hidden (bool): If true, includes hidden objects in search and visualization building. If false (default), excludes objects where isHidden=true.. [optional] if omitted the server will use the default value of False # noqa: E501 limit_create (int): Maximum number of created results.. [optional] if omitted the server will use the default value of 3 # noqa: E501 limit_create_context (int): Maximum number of relevant objects included into context for LLM (for each object type).. [optional] if omitted the server will use the default value of 10 # noqa: E501 limit_search (int): Maximum number of search results.. [optional] if omitted the server will use the default value of 5 # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_column.py b/gooddata-api-client/gooddata_api_client/model/declarative_column.py index da50679c2..5ee9a069e 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_column.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_column.py @@ -71,6 +71,9 @@ class DeclarativeColumn(ModelNormal): ('name',): { 'max_length': 255, }, + ('description',): { + 'max_length': 255, + }, ('referenced_table_column',): { 'max_length': 255, }, @@ -102,6 +105,7 @@ def openapi_types(): return { 'data_type': (str,), # noqa: E501 'name': (str,), # noqa: E501 + 'description': (str,), # noqa: E501 'is_primary_key': (bool,), # noqa: E501 'referenced_table_column': (str,), # noqa: E501 'referenced_table_id': (str,), # noqa: E501 @@ -115,6 +119,7 @@ def discriminator(): attribute_map = { 'data_type': 'dataType', # noqa: E501 'name': 'name', # noqa: E501 + 'description': 'description', # noqa: E501 'is_primary_key': 'isPrimaryKey', # noqa: E501 'referenced_table_column': 'referencedTableColumn', # noqa: E501 'referenced_table_id': 'referencedTableId', # noqa: E501 @@ -165,6 +170,7 @@ def _from_openapi_data(cls, data_type, name, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + description (str): Column description/comment from database. [optional] # noqa: E501 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 @@ -259,6 +265,7 @@ def __init__(self, data_type, name, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + description (str): Column description/comment from database. [optional] # noqa: E501 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 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_metric.py b/gooddata-api-client/gooddata_api_client/model/declarative_metric.py index 8581781e4..2b51a356e 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_metric.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_metric.py @@ -119,6 +119,7 @@ def openapi_types(): 'created_at': (str, none_type,), # noqa: E501 'created_by': (DeclarativeUserIdentifier,), # noqa: E501 'description': (str,), # noqa: E501 + 'is_hidden': (bool,), # noqa: E501 'modified_at': (str, none_type,), # noqa: E501 'modified_by': (DeclarativeUserIdentifier,), # noqa: E501 'tags': ([str],), # noqa: E501 @@ -136,6 +137,7 @@ def discriminator(): 'created_at': 'createdAt', # noqa: E501 'created_by': 'createdBy', # noqa: E501 'description': 'description', # noqa: E501 + 'is_hidden': 'isHidden', # noqa: E501 'modified_at': 'modifiedAt', # noqa: E501 'modified_by': 'modifiedBy', # noqa: E501 'tags': 'tags', # noqa: E501 @@ -190,6 +192,7 @@ def _from_openapi_data(cls, content, id, title, *args, **kwargs): # noqa: E501 created_at (str, none_type): Time of the entity creation.. [optional] # noqa: E501 created_by (DeclarativeUserIdentifier): [optional] # noqa: E501 description (str): Metric description.. [optional] # noqa: E501 + is_hidden (bool): If true, this metric is hidden from AI search results.. [optional] # noqa: E501 modified_at (str, none_type): Time of the last entity modification.. [optional] # noqa: E501 modified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 tags ([str]): A list of tags.. [optional] # noqa: E501 @@ -289,6 +292,7 @@ def __init__(self, content, id, title, *args, **kwargs): # noqa: E501 created_at (str, none_type): Time of the entity creation.. [optional] # noqa: E501 created_by (DeclarativeUserIdentifier): [optional] # noqa: E501 description (str): Metric description.. [optional] # noqa: E501 + is_hidden (bool): If true, this metric is hidden from AI search results.. [optional] # noqa: E501 modified_at (str, none_type): Time of the last entity modification.. [optional] # noqa: E501 modified_by (DeclarativeUserIdentifier): [optional] # noqa: E501 tags ([str]): A list of tags.. [optional] # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py b/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py index 75f68b083..112ddf827 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_organization_info.py @@ -89,23 +89,6 @@ class DeclarativeOrganizationInfo(ModelNormal): }, ('early_access_values',): { }, - ('oauth_client_id',): { - 'max_length': 255, - }, - ('oauth_client_secret',): { - 'max_length': 255, - }, - ('oauth_custom_auth_attributes',): { - }, - ('oauth_issuer_id',): { - 'max_length': 255, - }, - ('oauth_issuer_location',): { - 'max_length': 255, - }, - ('oauth_subject_id_claim',): { - 'max_length': 255, - }, } @cached_property @@ -141,13 +124,6 @@ def openapi_types(): 'early_access': (str,), # noqa: E501 'early_access_values': ([str],), # noqa: E501 'identity_provider': (DeclarativeIdentityProviderIdentifier,), # noqa: E501 - 'oauth_client_id': (str,), # noqa: E501 - 'oauth_client_secret': (str,), # noqa: E501 - 'oauth_custom_auth_attributes': ({str: (str,)},), # noqa: E501 - 'oauth_custom_scopes': ([str], none_type,), # noqa: E501 - 'oauth_issuer_id': (str,), # noqa: E501 - 'oauth_issuer_location': (str,), # noqa: E501 - 'oauth_subject_id_claim': (str,), # noqa: E501 'settings': ([DeclarativeSetting],), # noqa: E501 'themes': ([DeclarativeTheme],), # noqa: E501 } @@ -168,13 +144,6 @@ def discriminator(): 'early_access': 'earlyAccess', # noqa: E501 'early_access_values': 'earlyAccessValues', # noqa: E501 'identity_provider': 'identityProvider', # noqa: E501 - 'oauth_client_id': 'oauthClientId', # noqa: E501 - 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 - 'oauth_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 - 'oauth_custom_scopes': 'oauthCustomScopes', # noqa: E501 - 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501 - 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501 - 'oauth_subject_id_claim': 'oauthSubjectIdClaim', # noqa: E501 'settings': 'settings', # noqa: E501 'themes': 'themes', # noqa: E501 } @@ -232,13 +201,6 @@ def _from_openapi_data(cls, hostname, id, name, permissions, *args, **kwargs): early_access (str): Early access defined on level Organization. [optional] # noqa: E501 early_access_values ([str]): Early access defined on level Organization. [optional] # noqa: E501 identity_provider (DeclarativeIdentityProviderIdentifier): [optional] # noqa: E501 - oauth_client_id (str): Identifier of the authentication provider. [optional] # noqa: E501 - oauth_client_secret (str): Communication secret of the authentication provider (never returned back).. [optional] # noqa: E501 - oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 - oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 - oauth_issuer_location (str): URI of the authentication provider.. [optional] # noqa: E501 - oauth_subject_id_claim (str): Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.. [optional] # noqa: E501 settings ([DeclarativeSetting]): A list of organization settings.. [optional] # noqa: E501 themes ([DeclarativeTheme]): A list of themes.. [optional] # noqa: E501 """ @@ -342,13 +304,6 @@ def __init__(self, hostname, id, name, permissions, *args, **kwargs): # noqa: E early_access (str): Early access defined on level Organization. [optional] # noqa: E501 early_access_values ([str]): Early access defined on level Organization. [optional] # noqa: E501 identity_provider (DeclarativeIdentityProviderIdentifier): [optional] # noqa: E501 - oauth_client_id (str): Identifier of the authentication provider. [optional] # noqa: E501 - oauth_client_secret (str): Communication secret of the authentication provider (never returned back).. [optional] # noqa: E501 - oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 - oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 - oauth_issuer_location (str): URI of the authentication provider.. [optional] # noqa: E501 - oauth_subject_id_claim (str): Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.. [optional] # noqa: E501 settings ([DeclarativeSetting]): A list of organization settings.. [optional] # noqa: E501 themes ([DeclarativeTheme]): A list of themes.. [optional] # noqa: E501 """ diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_setting.py b/gooddata-api-client/gooddata_api_client/model/declarative_setting.py index fca34d24a..336929fa7 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_setting.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_setting.py @@ -84,12 +84,14 @@ class DeclarativeSetting(ModelNormal): 'JWT_JIT_PROVISIONING': "JWT_JIT_PROVISIONING", 'DASHBOARD_FILTERS_APPLY_MODE': "DASHBOARD_FILTERS_APPLY_MODE", 'ENABLE_SLIDES_EXPORT': "ENABLE_SLIDES_EXPORT", + 'ENABLE_SNAPSHOT_EXPORT': "ENABLE_SNAPSHOT_EXPORT", 'AI_RATE_LIMIT': "AI_RATE_LIMIT", 'ATTACHMENT_SIZE_LIMIT': "ATTACHMENT_SIZE_LIMIT", 'ATTACHMENT_LINK_TTL': "ATTACHMENT_LINK_TTL", 'AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE': "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", 'ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS': "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", 'ENABLE_AUTOMATION_EVALUATION_MODE': "ENABLE_AUTOMATION_EVALUATION_MODE", + 'ENABLE_ACCESSIBILITY_MODE': "ENABLE_ACCESSIBILITY_MODE", 'REGISTERED_PLUGGABLE_APPLICATIONS': "REGISTERED_PLUGGABLE_APPLICATIONS", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/entitlements_request.py b/gooddata-api-client/gooddata_api_client/model/entitlements_request.py index 66625f74f..8162cf2a4 100644 --- a/gooddata-api-client/gooddata_api_client/model/entitlements_request.py +++ b/gooddata-api-client/gooddata_api_client/model/entitlements_request.py @@ -63,7 +63,6 @@ class EntitlementsRequest(ModelNormal): 'EXTRACACHE': "ExtraCache", 'HIPAA': "Hipaa", 'PDFEXPORTS': "PdfExports", - 'MANAGEDOIDC': "ManagedOIDC", 'UILOCALIZATION': "UiLocalization", 'TIER': "Tier", 'USERCOUNT': "UserCount", 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 index 021e08f04..4a77fe485 100644 --- a/gooddata-api-client/gooddata_api_client/model/generate_ldm_request.py +++ b/gooddata-api-client/gooddata_api_client/model/generate_ldm_request.py @@ -90,6 +90,7 @@ def openapi_types(): return { 'aggregated_fact_prefix': (str,), # noqa: E501 'date_granularities': (str,), # noqa: E501 + 'date_reference_prefix': (str,), # noqa: E501 'denorm_prefix': (str,), # noqa: E501 'fact_prefix': (str,), # noqa: E501 'generate_long_ids': (bool,), # noqa: E501 @@ -116,6 +117,7 @@ def discriminator(): attribute_map = { 'aggregated_fact_prefix': 'aggregatedFactPrefix', # noqa: E501 'date_granularities': 'dateGranularities', # noqa: E501 + 'date_reference_prefix': 'dateReferencePrefix', # noqa: E501 'denorm_prefix': 'denormPrefix', # noqa: E501 'fact_prefix': 'factPrefix', # noqa: E501 'generate_long_ids': 'generateLongIds', # noqa: E501 @@ -177,6 +179,7 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) aggregated_fact_prefix (str): Columns starting with this prefix will be considered as aggregated facts. The prefix is then followed by the value of `separator` parameter. Given the aggregated fact prefix is `aggr` and separator is `__`, the columns with name like `aggr__sum__product__sold` will be considered as aggregated sold fact in the product table with SUM aggregate function.. [optional] # noqa: E501 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 + date_reference_prefix (str): Columns starting with this prefix will be considered as references to date dataset. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `d` and separator is `__`, the columns with name like `d__date` will be considered as reference to date dataset. There can be also second separator and granularity suffix, e.g. `d__date__day` to create attribute reference to exact date dataset and granularity.. [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] if omitted the server will use the default value of False # noqa: E501 @@ -280,6 +283,7 @@ def __init__(self, *args, **kwargs): # noqa: E501 _visited_composed_classes = (Animal,) aggregated_fact_prefix (str): Columns starting with this prefix will be considered as aggregated facts. The prefix is then followed by the value of `separator` parameter. Given the aggregated fact prefix is `aggr` and separator is `__`, the columns with name like `aggr__sum__product__sold` will be considered as aggregated sold fact in the product table with SUM aggregate function.. [optional] # noqa: E501 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 + date_reference_prefix (str): Columns starting with this prefix will be considered as references to date dataset. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `d` and separator is `__`, the columns with name like `d__date` will be considered as reference to date dataset. There can be also second separator and granularity suffix, e.g. `d__date__day` to create attribute reference to exact date dataset and granularity.. [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] if omitted the server will use the default value of False # noqa: E501 diff --git a/gooddata-api-client/gooddata_api_client/model/get_quality_issues_response.py b/gooddata-api-client/gooddata_api_client/model/get_quality_issues_response.py index 1e3cfa50b..2b74cdc78 100644 --- a/gooddata-api-client/gooddata_api_client/model/get_quality_issues_response.py +++ b/gooddata-api-client/gooddata_api_client/model/get_quality_issues_response.py @@ -111,7 +111,7 @@ def _from_openapi_data(cls, issues, *args, **kwargs): # noqa: E501 """GetQualityIssuesResponse - a model defined in OpenAPI Args: - issues ([QualityIssue]): + issues ([QualityIssue]): List of quality issues found in the workspace Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -200,7 +200,7 @@ def __init__(self, issues, *args, **kwargs): # noqa: E501 """GetQualityIssuesResponse - a model defined in OpenAPI Args: - issues ([QualityIssue]): + issues ([QualityIssue]): List of quality issues found in the workspace Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_jwk_in_attributes_content.py b/gooddata-api-client/gooddata_api_client/model/json_api_jwk_in_attributes_content.py index 47aec8f18..3554ced2b 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_jwk_in_attributes_content.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_jwk_in_attributes_content.py @@ -74,13 +74,6 @@ class JsonApiJwkInAttributesContent(ModelComposed): } validations = { - ('kid',): { - 'max_length': 255, - 'min_length': 0, - 'regex': { - 'pattern': r'^[^.]', # noqa: E501 - }, - }, } @cached_property 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 index 1b70c8f62..b5752c799 100644 --- 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 @@ -68,23 +68,6 @@ class JsonApiOrganizationInAttributes(ModelNormal): ('name',): { 'max_length': 255, }, - ('oauth_client_id',): { - 'max_length': 255, - }, - ('oauth_client_secret',): { - 'max_length': 255, - }, - ('oauth_custom_auth_attributes',): { - }, - ('oauth_issuer_id',): { - 'max_length': 255, - }, - ('oauth_issuer_location',): { - 'max_length': 255, - }, - ('oauth_subject_id_claim',): { - 'max_length': 255, - }, } @cached_property @@ -113,13 +96,6 @@ def openapi_types(): 'early_access_values': ([str], none_type,), # noqa: E501 'hostname': (str,), # noqa: E501 'name': (str, none_type,), # noqa: E501 - 'oauth_client_id': (str,), # noqa: E501 - 'oauth_client_secret': (str,), # noqa: E501 - 'oauth_custom_auth_attributes': ({str: (str,)},), # noqa: E501 - 'oauth_custom_scopes': ([str], none_type,), # noqa: E501 - 'oauth_issuer_id': (str,), # noqa: E501 - 'oauth_issuer_location': (str,), # noqa: E501 - 'oauth_subject_id_claim': (str,), # noqa: E501 } @cached_property @@ -133,13 +109,6 @@ def discriminator(): 'early_access_values': 'earlyAccessValues', # noqa: E501 'hostname': 'hostname', # noqa: E501 'name': 'name', # noqa: E501 - 'oauth_client_id': 'oauthClientId', # noqa: E501 - 'oauth_client_secret': 'oauthClientSecret', # noqa: E501 - 'oauth_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 - 'oauth_custom_scopes': 'oauthCustomScopes', # noqa: E501 - 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501 - 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501 - 'oauth_subject_id_claim': 'oauthSubjectIdClaim', # noqa: E501 } read_only_vars = { @@ -188,13 +157,6 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 early_access_values ([str], none_type): The early access feature identifiers. They are used to enable experimental features.. [optional] # noqa: E501 hostname (str): [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 - oauth_client_id (str): [optional] # noqa: E501 - oauth_client_secret (str): [optional] # noqa: E501 - oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 - oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 - oauth_issuer_location (str): [optional] # noqa: E501 - oauth_subject_id_claim (str): Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -285,13 +247,6 @@ def __init__(self, *args, **kwargs): # noqa: E501 early_access_values ([str], none_type): The early access feature identifiers. They are used to enable experimental features.. [optional] # noqa: E501 hostname (str): [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 - oauth_client_id (str): [optional] # noqa: E501 - oauth_client_secret (str): [optional] # noqa: E501 - oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 - oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 - oauth_issuer_location (str): [optional] # noqa: E501 - oauth_subject_id_claim (str): Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_out_attributes.py index 44930cd85..7e17b3427 100644 --- 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 @@ -72,20 +72,6 @@ class JsonApiOrganizationOutAttributes(ModelNormal): ('name',): { 'max_length': 255, }, - ('oauth_client_id',): { - 'max_length': 255, - }, - ('oauth_custom_auth_attributes',): { - }, - ('oauth_issuer_id',): { - 'max_length': 255, - }, - ('oauth_issuer_location',): { - 'max_length': 255, - }, - ('oauth_subject_id_claim',): { - 'max_length': 255, - }, } @cached_property @@ -117,12 +103,6 @@ def openapi_types(): 'early_access_values': ([str], none_type,), # noqa: E501 'hostname': (str,), # noqa: E501 'name': (str, none_type,), # noqa: E501 - 'oauth_client_id': (str,), # noqa: E501 - 'oauth_custom_auth_attributes': ({str: (str,)},), # noqa: E501 - 'oauth_custom_scopes': ([str], none_type,), # noqa: E501 - 'oauth_issuer_id': (str,), # noqa: E501 - 'oauth_issuer_location': (str,), # noqa: E501 - 'oauth_subject_id_claim': (str,), # noqa: E501 } @cached_property @@ -137,12 +117,6 @@ def discriminator(): 'early_access_values': 'earlyAccessValues', # noqa: E501 'hostname': 'hostname', # noqa: E501 'name': 'name', # noqa: E501 - 'oauth_client_id': 'oauthClientId', # noqa: E501 - 'oauth_custom_auth_attributes': 'oauthCustomAuthAttributes', # noqa: E501 - 'oauth_custom_scopes': 'oauthCustomScopes', # noqa: E501 - 'oauth_issuer_id': 'oauthIssuerId', # noqa: E501 - 'oauth_issuer_location': 'oauthIssuerLocation', # noqa: E501 - 'oauth_subject_id_claim': 'oauthSubjectIdClaim', # noqa: E501 } read_only_vars = { @@ -192,12 +166,6 @@ def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 early_access_values ([str], none_type): The early access feature identifiers. They are used to enable experimental features.. [optional] # noqa: E501 hostname (str): [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 - oauth_client_id (str): [optional] # noqa: E501 - oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 - oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 - oauth_issuer_location (str): [optional] # noqa: E501 - oauth_subject_id_claim (str): Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -289,12 +257,6 @@ def __init__(self, *args, **kwargs): # noqa: E501 early_access_values ([str], none_type): The early access feature identifiers. They are used to enable experimental features.. [optional] # noqa: E501 hostname (str): [optional] # noqa: E501 name (str, none_type): [optional] # noqa: E501 - oauth_client_id (str): [optional] # noqa: E501 - oauth_custom_auth_attributes ({str: (str,)}): Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.. [optional] # noqa: E501 - oauth_custom_scopes ([str], none_type): List of additional OAuth scopes which may be required by other providers (e.g. Snowflake). [optional] # noqa: E501 - oauth_issuer_id (str): Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.. [optional] # noqa: E501 - oauth_issuer_location (str): [optional] # noqa: E501 - oauth_subject_id_claim (str): Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py index 0518d4a95..20f99e246 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_organization_setting_in_attributes.py @@ -80,12 +80,14 @@ class JsonApiOrganizationSettingInAttributes(ModelNormal): 'JWT_JIT_PROVISIONING': "JWT_JIT_PROVISIONING", 'DASHBOARD_FILTERS_APPLY_MODE': "DASHBOARD_FILTERS_APPLY_MODE", 'ENABLE_SLIDES_EXPORT': "ENABLE_SLIDES_EXPORT", + 'ENABLE_SNAPSHOT_EXPORT': "ENABLE_SNAPSHOT_EXPORT", 'AI_RATE_LIMIT': "AI_RATE_LIMIT", 'ATTACHMENT_SIZE_LIMIT': "ATTACHMENT_SIZE_LIMIT", 'ATTACHMENT_LINK_TTL': "ATTACHMENT_LINK_TTL", 'AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE': "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", 'ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS': "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", 'ENABLE_AUTOMATION_EVALUATION_MODE': "ENABLE_AUTOMATION_EVALUATION_MODE", + 'ENABLE_ACCESSIBILITY_MODE': "ENABLE_ACCESSIBILITY_MODE", 'REGISTERED_PLUGGABLE_APPLICATIONS': "REGISTERED_PLUGGABLE_APPLICATIONS", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/metric_value_change.py b/gooddata-api-client/gooddata_api_client/model/metric_value_change.py new file mode 100644 index 000000000..15735f67c --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/metric_value_change.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 MetricValueChange(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, 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 { + 'attribute_name': (str,), # noqa: E501 + 'attribute_value': (str,), # noqa: E501 + 'attribute_values_change_mean': (float,), # noqa: E501 + 'attribute_values_change_std': (float,), # noqa: E501 + 'is_significant_change': (bool,), # noqa: E501 + 'metric_value_delta': (float,), # noqa: E501 + 'metric_value_delta_abs': (float,), # noqa: E501 + 'metric_value_in_analyzed_period': (float,), # noqa: E501 + 'metric_value_in_reference_period': (float,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'attribute_name': 'attributeName', # noqa: E501 + 'attribute_value': 'attributeValue', # noqa: E501 + 'attribute_values_change_mean': 'attributeValuesChangeMean', # noqa: E501 + 'attribute_values_change_std': 'attributeValuesChangeStd', # noqa: E501 + 'is_significant_change': 'isSignificantChange', # noqa: E501 + 'metric_value_delta': 'metricValueDelta', # noqa: E501 + 'metric_value_delta_abs': 'metricValueDeltaAbs', # noqa: E501 + 'metric_value_in_analyzed_period': 'metricValueInAnalyzedPeriod', # noqa: E501 + 'metric_value_in_reference_period': 'metricValueInReferencePeriod', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, attribute_name, attribute_value, attribute_values_change_mean, attribute_values_change_std, is_significant_change, metric_value_delta, metric_value_delta_abs, metric_value_in_analyzed_period, metric_value_in_reference_period, *args, **kwargs): # noqa: E501 + """MetricValueChange - a model defined in OpenAPI + + Args: + attribute_name (str): The name of the attribute being analyzed + attribute_value (str): The value of the attribute being analyzed + attribute_values_change_mean (float): The mean of attribute value changes for the attribute being analyzed + attribute_values_change_std (float): The standard deviation of attribute value changes for the attribute being analyzed + is_significant_change (bool): Whether the change is statistically significant + metric_value_delta (float): The delta between analyzed and reference periods + metric_value_delta_abs (float): The absolute delta between analyzed and reference periods + metric_value_in_analyzed_period (float): The metric value in the analyzed period + metric_value_in_reference_period (float): The metric value in the reference period + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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_name = attribute_name + self.attribute_value = attribute_value + self.attribute_values_change_mean = attribute_values_change_mean + self.attribute_values_change_std = attribute_values_change_std + self.is_significant_change = is_significant_change + self.metric_value_delta = metric_value_delta + self.metric_value_delta_abs = metric_value_delta_abs + self.metric_value_in_analyzed_period = metric_value_in_analyzed_period + self.metric_value_in_reference_period = metric_value_in_reference_period + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = 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_name, attribute_value, attribute_values_change_mean, attribute_values_change_std, is_significant_change, metric_value_delta, metric_value_delta_abs, metric_value_in_analyzed_period, metric_value_in_reference_period, *args, **kwargs): # noqa: E501 + """MetricValueChange - a model defined in OpenAPI + + Args: + attribute_name (str): The name of the attribute being analyzed + attribute_value (str): The value of the attribute being analyzed + attribute_values_change_mean (float): The mean of attribute value changes for the attribute being analyzed + attribute_values_change_std (float): The standard deviation of attribute value changes for the attribute being analyzed + is_significant_change (bool): Whether the change is statistically significant + metric_value_delta (float): The delta between analyzed and reference periods + metric_value_delta_abs (float): The absolute delta between analyzed and reference periods + metric_value_in_analyzed_period (float): The metric value in the analyzed period + metric_value_in_reference_period (float): The metric value in the reference period + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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_name = attribute_name + self.attribute_value = attribute_value + self.attribute_values_change_mean = attribute_values_change_mean + self.attribute_values_change_std = attribute_values_change_std + self.is_significant_change = is_significant_change + self.metric_value_delta = metric_value_delta + self.metric_value_delta_abs = metric_value_delta_abs + self.metric_value_in_analyzed_period = metric_value_in_analyzed_period + self.metric_value_in_reference_period = metric_value_in_reference_period + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/notes.py b/gooddata-api-client/gooddata_api_client/model/notes.py index e3e7b9e30..9c91f4f85 100644 --- a/gooddata-api-client/gooddata_api_client/model/notes.py +++ b/gooddata-api-client/gooddata_api_client/model/notes.py @@ -107,12 +107,9 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, note, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 """Notes - a model defined in OpenAPI - Args: - note ([Note]): - Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -144,6 +141,7 @@ def _from_openapi_data(cls, note, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + note ([Note]): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -175,7 +173,6 @@ def _from_openapi_data(cls, note, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.note = note for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -196,12 +193,9 @@ def _from_openapi_data(cls, note, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, note, *args, **kwargs): # noqa: E501 + def __init__(self, *args, **kwargs): # noqa: E501 """Notes - a model defined in OpenAPI - Args: - note ([Note]): - Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -233,6 +227,7 @@ def __init__(self, note, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + note ([Note]): [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -262,7 +257,6 @@ def __init__(self, note, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.note = note for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ diff --git a/gooddata-api-client/gooddata_api_client/model/quality_issue.py b/gooddata-api-client/gooddata_api_client/model/quality_issue.py index 57e0d91aa..c5ebdf7e2 100644 --- a/gooddata-api-client/gooddata_api_client/model/quality_issue.py +++ b/gooddata-api-client/gooddata_api_client/model/quality_issue.py @@ -60,6 +60,10 @@ class QualityIssue(ModelNormal): """ allowed_values = { + ('severity',): { + 'ERROR': "error", + 'WARNING': "warning", + }, } validations = { @@ -117,10 +121,10 @@ def _from_openapi_data(cls, code, detail, objects, severity, *args, **kwargs): """QualityIssue - a model defined in OpenAPI Args: - code (str): - detail ({str: ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},)}): - objects ([QualityIssueObject]): - severity (str): + code (str): Quality issue code + detail ({str: ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},)}): Detailed information about the quality issue + objects ([QualityIssueObject]): List of objects affected by this quality issue + severity (str): Severity level Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -212,10 +216,10 @@ def __init__(self, code, detail, objects, severity, *args, **kwargs): # noqa: E """QualityIssue - a model defined in OpenAPI Args: - code (str): - detail ({str: ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},)}): - objects ([QualityIssueObject]): - severity (str): + code (str): Quality issue code + detail ({str: ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},)}): Detailed information about the quality issue + objects ([QualityIssueObject]): List of objects affected by this quality issue + severity (str): Severity level Keyword Args: _check_type (bool): if True, values for parameters in openapi_types diff --git a/gooddata-api-client/gooddata_api_client/model/quality_issue_object.py b/gooddata-api-client/gooddata_api_client/model/quality_issue_object.py index 6e440868b..a087f03e9 100644 --- a/gooddata-api-client/gooddata_api_client/model/quality_issue_object.py +++ b/gooddata-api-client/gooddata_api_client/model/quality_issue_object.py @@ -84,6 +84,7 @@ def openapi_types(): return { 'id': (str,), # noqa: E501 'type': (str,), # noqa: E501 + 'workspace_id': (str,), # noqa: E501 } @cached_property @@ -94,6 +95,7 @@ def discriminator(): attribute_map = { 'id': 'id', # noqa: E501 'type': 'type', # noqa: E501 + 'workspace_id': 'workspaceId', # noqa: E501 } read_only_vars = { @@ -103,12 +105,13 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, id, type, workspace_id, *args, **kwargs): # noqa: E501 """QualityIssueObject - a model defined in OpenAPI Args: - id (str): - type (str): + id (str): Object ID + type (str): Object type + workspace_id (str): Workspace ID where the object belongs Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -174,6 +177,7 @@ def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 self.id = id self.type = type + self.workspace_id = workspace_id for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -194,12 +198,13 @@ def _from_openapi_data(cls, id, type, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, id, type, *args, **kwargs): # noqa: E501 + def __init__(self, id, type, workspace_id, *args, **kwargs): # noqa: E501 """QualityIssueObject - a model defined in OpenAPI Args: - id (str): - type (str): + id (str): Object ID + type (str): Object type + workspace_id (str): Workspace ID where the object belongs Keyword Args: _check_type (bool): if True, values for parameters in openapi_types @@ -263,6 +268,7 @@ def __init__(self, id, type, *args, **kwargs): # noqa: E501 self.id = id self.type = type + self.workspace_id = workspace_id for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ diff --git a/gooddata-api-client/gooddata_api_client/model/quality_issues_calculation_status_response.py b/gooddata-api-client/gooddata_api_client/model/quality_issues_calculation_status_response.py new file mode 100644 index 000000000..36d13d22d --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/quality_issues_calculation_status_response.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.quality_issue import QualityIssue + globals()['QualityIssue'] = QualityIssue + + +class QualityIssuesCalculationStatusResponse(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('status',): { + 'RUNNING': "RUNNING", + 'COMPLETED': "COMPLETED", + 'FAILED': "FAILED", + 'NOT_FOUND': "NOT_FOUND", + }, + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + """ + lazy_import() + return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501 + + _nullable = False + + @cached_property + def openapi_types(): + """ + This must be a method because a model may have properties that are + of type self, this must run after the class is loaded + + Returns + openapi_types (dict): The key is attribute name + and the value is attribute type. + """ + lazy_import() + return { + 'status': (str,), # noqa: E501 + 'error': (str,), # noqa: E501 + 'issues': ([QualityIssue],), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'status': 'status', # noqa: E501 + 'error': 'error', # noqa: E501 + 'issues': 'issues', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, status, *args, **kwargs): # noqa: E501 + """QualityIssuesCalculationStatusResponse - a model defined in OpenAPI + + Args: + status (str): Current status of the calculation + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make 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): Error message (available when status is FAILED or NOT_FOUND). [optional] # noqa: E501 + issues ([QualityIssue]): List of quality issues (available when status is COMPLETED). [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.status = status + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, status, *args, **kwargs): # noqa: E501 + """QualityIssuesCalculationStatusResponse - a model defined in OpenAPI + + Args: + status (str): Current status of the calculation + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make 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): Error message (available when status is FAILED or NOT_FOUND). [optional] # noqa: E501 + issues ([QualityIssue]): List of quality issues (available when status is COMPLETED). [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.status = status + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/resolved_setting.py b/gooddata-api-client/gooddata_api_client/model/resolved_setting.py index 213c7c112..5f810c1c0 100644 --- a/gooddata-api-client/gooddata_api_client/model/resolved_setting.py +++ b/gooddata-api-client/gooddata_api_client/model/resolved_setting.py @@ -84,12 +84,14 @@ class ResolvedSetting(ModelNormal): 'JWT_JIT_PROVISIONING': "JWT_JIT_PROVISIONING", 'DASHBOARD_FILTERS_APPLY_MODE': "DASHBOARD_FILTERS_APPLY_MODE", 'ENABLE_SLIDES_EXPORT': "ENABLE_SLIDES_EXPORT", + 'ENABLE_SNAPSHOT_EXPORT': "ENABLE_SNAPSHOT_EXPORT", 'AI_RATE_LIMIT': "AI_RATE_LIMIT", 'ATTACHMENT_SIZE_LIMIT': "ATTACHMENT_SIZE_LIMIT", 'ATTACHMENT_LINK_TTL': "ATTACHMENT_LINK_TTL", 'AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE': "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", 'ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS': "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", 'ENABLE_AUTOMATION_EVALUATION_MODE': "ENABLE_AUTOMATION_EVALUATION_MODE", + 'ENABLE_ACCESSIBILITY_MODE': "ENABLE_ACCESSIBILITY_MODE", 'REGISTERED_PLUGGABLE_APPLICATIONS': "REGISTERED_PLUGGABLE_APPLICATIONS", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/rsa_specification.py b/gooddata-api-client/gooddata_api_client/model/rsa_specification.py index e6283d481..26adabffc 100644 --- a/gooddata-api-client/gooddata_api_client/model/rsa_specification.py +++ b/gooddata-api-client/gooddata_api_client/model/rsa_specification.py @@ -70,13 +70,6 @@ class RsaSpecification(ModelNormal): } validations = { - ('kid',): { - 'max_length': 255, - 'min_length': 0, - 'regex': { - 'pattern': r'^[^.]', # noqa: E501 - }, - }, } @cached_property diff --git a/gooddata-api-client/gooddata_api_client/model/sql_column.py b/gooddata-api-client/gooddata_api_client/model/sql_column.py index 0af95da4d..0ee354836 100644 --- a/gooddata-api-client/gooddata_api_client/model/sql_column.py +++ b/gooddata-api-client/gooddata_api_client/model/sql_column.py @@ -93,6 +93,7 @@ def openapi_types(): return { 'data_type': (str,), # noqa: E501 'name': (str,), # noqa: E501 + 'description': (str,), # noqa: E501 } @cached_property @@ -103,6 +104,7 @@ def discriminator(): attribute_map = { 'data_type': 'dataType', # noqa: E501 'name': 'name', # noqa: E501 + 'description': 'description', # noqa: E501 } read_only_vars = { @@ -150,6 +152,7 @@ def _from_openapi_data(cls, data_type, name, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + description (str): Column description/comment from database. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) @@ -241,6 +244,7 @@ def __init__(self, data_type, name, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + description (str): Column description/comment from database. [optional] # noqa: E501 """ _check_type = kwargs.pop('_check_type', True) diff --git a/gooddata-api-client/gooddata_api_client/model/trigger_quality_issues_calculation_response.py b/gooddata-api-client/gooddata_api_client/model/trigger_quality_issues_calculation_response.py new file mode 100644 index 000000000..2308b5ab5 --- /dev/null +++ b/gooddata-api-client/gooddata_api_client/model/trigger_quality_issues_calculation_response.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 TriggerQualityIssuesCalculationResponse(ModelNormal): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + + Attributes: + allowed_values (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + with a capitalized key describing the allowed value and an allowed + value. These dicts store the allowed enum values. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + discriminator_value_class_map (dict): A dict to go from the discriminator + variable value to the discriminator class name. + validations (dict): The key is the tuple path to the attribute + and the for var_name this is (var_name,). The value is a dict + that stores validations for max_length, min_length, max_items, + min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum, + inclusive_minimum, and regex. + additional_properties_type (tuple): A tuple of classes accepted + as additional properties values. + """ + + allowed_values = { + ('status',): { + 'RUNNING': "RUNNING", + 'COMPLETED': "COMPLETED", + 'FAILED': "FAILED", + }, + } + + validations = { + } + + @cached_property + def additional_properties_type(): + """ + 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 { + 'process_id': (str,), # noqa: E501 + 'status': (str,), # noqa: E501 + } + + @cached_property + def discriminator(): + return None + + + attribute_map = { + 'process_id': 'processId', # noqa: E501 + 'status': 'status', # noqa: E501 + } + + read_only_vars = { + } + + _composed_schemas = {} + + @classmethod + @convert_js_args_to_python_args + def _from_openapi_data(cls, process_id, status, *args, **kwargs): # noqa: E501 + """TriggerQualityIssuesCalculationResponse - a model defined in OpenAPI + + Args: + process_id (str): Process ID for tracking the calculation status + status (str): Current status of the calculation + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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.process_id = process_id + self.status = status + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + return self + + required_properties = set([ + '_data_store', + '_check_type', + '_spec_property_naming', + '_path_to_item', + '_configuration', + '_visited_composed_classes', + ]) + + @convert_js_args_to_python_args + def __init__(self, process_id, status, *args, **kwargs): # noqa: E501 + """TriggerQualityIssuesCalculationResponse - a model defined in OpenAPI + + Args: + process_id (str): Process ID for tracking the calculation status + status (str): Current status of the calculation + + Keyword Args: + _check_type (bool): if True, values for parameters in openapi_types + will be type checked and a TypeError will be + raised if the wrong type is input. + Defaults to True + _path_to_item (tuple/list): This is a list of keys or values to + drill down to the model in received_data + when deserializing a response + _spec_property_naming (bool): True if the variable names in the input data + are serialized names, as specified in the OpenAPI document. + False if the variable names in the input data + are pythonic names, e.g. snake case (default) + _configuration (Configuration): the instance to use when + deserializing a file_type parameter. + If passed, type conversion is attempted + If omitted no type conversion is done. + _visited_composed_classes (tuple): This stores a tuple of + classes that we have traveled through so that + if we see that class again we will not use its + discriminator again. + When traveling through a discriminator, the + composed schema that is + is traveled through is added to this set. + For example if Animal has a discriminator + petType and we pass in "Dog", and the class Dog + allOf includes Animal, we move through Animal + once using the discriminator, and pick Dog. + Then in Dog, we will make an instance of the + Animal class but this time we won't travel + through its 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.process_id = process_id + self.status = status + for var_name, var_value in kwargs.items(): + if var_name not in self.attribute_map and \ + self._configuration is not None and \ + self._configuration.discard_unknown_keys and \ + self.additional_properties_type is None: + # discard variable. + continue + setattr(self, var_name, var_value) + if var_name in self.read_only_vars: + raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate " + f"class with read only attributes.") diff --git a/gooddata-api-client/gooddata_api_client/model/xliff.py b/gooddata-api-client/gooddata_api_client/model/xliff.py index ab6600299..206e6ec6f 100644 --- a/gooddata-api-client/gooddata_api_client/model/xliff.py +++ b/gooddata-api-client/gooddata_api_client/model/xliff.py @@ -117,12 +117,9 @@ def discriminator(): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, file, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, *args, **kwargs): # noqa: E501 """Xliff - a model defined in OpenAPI - Args: - file ([File]): - Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -154,6 +151,7 @@ def _from_openapi_data(cls, file, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + file ([File]): [optional] # noqa: E501 other_attributes ({str: (str,)}): [optional] # noqa: E501 space (str): [optional] # noqa: E501 src_lang (str): [optional] # noqa: E501 @@ -190,7 +188,6 @@ def _from_openapi_data(cls, file, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.file = file for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ @@ -211,12 +208,9 @@ def _from_openapi_data(cls, file, *args, **kwargs): # noqa: E501 ]) @convert_js_args_to_python_args - def __init__(self, file, *args, **kwargs): # noqa: E501 + def __init__(self, *args, **kwargs): # noqa: E501 """Xliff - a model defined in OpenAPI - Args: - file ([File]): - Keyword Args: _check_type (bool): if True, values for parameters in openapi_types will be type checked and a TypeError will be @@ -248,6 +242,7 @@ def __init__(self, file, *args, **kwargs): # noqa: E501 Animal class but this time we won't travel through its discriminator because we passed in _visited_composed_classes = (Animal,) + file ([File]): [optional] # noqa: E501 other_attributes ({str: (str,)}): [optional] # noqa: E501 space (str): [optional] # noqa: E501 src_lang (str): [optional] # noqa: E501 @@ -282,7 +277,6 @@ def __init__(self, file, *args, **kwargs): # noqa: E501 self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) - self.file = file for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ self._configuration is not None and \ diff --git a/gooddata-api-client/gooddata_api_client/models/__init__.py b/gooddata-api-client/gooddata_api_client/models/__init__.py index 558225f7d..f4c07ddb8 100644 --- a/gooddata-api-client/gooddata_api_client/models/__init__.py +++ b/gooddata-api-client/gooddata_api_client/models/__init__.py @@ -40,7 +40,9 @@ from gooddata_api_client.model.alert_condition_operand import AlertConditionOperand from gooddata_api_client.model.alert_description import AlertDescription from gooddata_api_client.model.alert_evaluation_row import AlertEvaluationRow +from gooddata_api_client.model.analytics_catalog_created_by import AnalyticsCatalogCreatedBy from gooddata_api_client.model.analytics_catalog_tags import AnalyticsCatalogTags +from gooddata_api_client.model.analytics_catalog_user import AnalyticsCatalogUser from gooddata_api_client.model.anomaly_detection_request import AnomalyDetectionRequest from gooddata_api_client.model.anomaly_detection_result import AnomalyDetectionResult from gooddata_api_client.model.api_entitlement import ApiEntitlement @@ -52,6 +54,7 @@ from gooddata_api_client.model.attribute_elements import AttributeElements from gooddata_api_client.model.attribute_elements_by_ref import AttributeElementsByRef from gooddata_api_client.model.attribute_elements_by_value import AttributeElementsByValue +from gooddata_api_client.model.attribute_equality_filter import AttributeEqualityFilter from gooddata_api_client.model.attribute_execution_result_header import AttributeExecutionResultHeader from gooddata_api_client.model.attribute_filter import AttributeFilter from gooddata_api_client.model.attribute_filter_by_date import AttributeFilterByDate @@ -81,6 +84,9 @@ from gooddata_api_client.model.automation_visual_export import AutomationVisualExport from gooddata_api_client.model.available_assignees import AvailableAssignees from gooddata_api_client.model.bounded_filter import BoundedFilter +from gooddata_api_client.model.change_analysis_request import ChangeAnalysisRequest +from gooddata_api_client.model.change_analysis_response import ChangeAnalysisResponse +from gooddata_api_client.model.change_analysis_result import ChangeAnalysisResult from gooddata_api_client.model.chat_history_interaction import ChatHistoryInteraction from gooddata_api_client.model.chat_history_request import ChatHistoryRequest from gooddata_api_client.model.chat_history_result import ChatHistoryResult @@ -830,6 +836,7 @@ from gooddata_api_client.model.memory_item_use_cases import MemoryItemUseCases from gooddata_api_client.model.metric import Metric from gooddata_api_client.model.metric_record import MetricRecord +from gooddata_api_client.model.metric_value_change import MetricValueChange from gooddata_api_client.model.negative_attribute_filter import NegativeAttributeFilter from gooddata_api_client.model.negative_attribute_filter_negative_attribute_filter import NegativeAttributeFilterNegativeAttributeFilter from gooddata_api_client.model.note import Note @@ -872,6 +879,7 @@ from gooddata_api_client.model.positive_attribute_filter_positive_attribute_filter import PositiveAttributeFilterPositiveAttributeFilter from gooddata_api_client.model.quality_issue import QualityIssue from gooddata_api_client.model.quality_issue_object import QualityIssueObject +from gooddata_api_client.model.quality_issues_calculation_status_response import QualityIssuesCalculationStatusResponse from gooddata_api_client.model.range import Range 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 @@ -950,6 +958,7 @@ 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.trigger_automation_request import TriggerAutomationRequest +from gooddata_api_client.model.trigger_quality_issues_calculation_response import TriggerQualityIssuesCalculationResponse from gooddata_api_client.model.user_assignee import UserAssignee from gooddata_api_client.model.user_context import UserContext from gooddata_api_client.model.user_group_assignee import UserGroupAssignee diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/action_model/sql_column.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/action_model/sql_column.py index 92e865d6a..ac73b2beb 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/data_source/action_model/sql_column.py +++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/action_model/sql_column.py @@ -1,6 +1,8 @@ # (C) 2023 GoodData Corporation from __future__ import annotations +from typing import Optional + import attr from gooddata_api_client.model.sql_column import SqlColumn as ApiSqlColumn @@ -11,6 +13,7 @@ class SqlColumn(Base): data_type: str name: str + description: Optional[str] = None @staticmethod def client_class() -> type[ApiSqlColumn]: 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 95344c1a8..60862b996 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 @@ -13,6 +13,7 @@ class CatalogDeclarativeColumn(Base): name: str data_type: str + description: Optional[str] = None is_primary_key: Optional[bool] = None referenced_table_id: Optional[str] = None referenced_table_column: Optional[str] = None diff --git a/pyproject.toml b/pyproject.toml index 0879fc0e3..87f016f6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,7 @@ exclude = [ "build", "dist", "gooddata-api-client", + ".cursor", ] line-length = 120 lint.select = [ diff --git a/schemas/gooddata-afm-client.json b/schemas/gooddata-afm-client.json index bcf6ad2ae..1f45afbe0 100644 --- a/schemas/gooddata-afm-client.json +++ b/schemas/gooddata-afm-client.json @@ -120,7 +120,6 @@ "properties": { "resultIdToCancelTokenPairs": { "additionalProperties": { - "description": "resultId to cancel token pairs", "type": "string" }, "description": "resultId to cancel token pairs", @@ -422,6 +421,26 @@ ], "type": "object" }, + "AnalyticsCatalogCreatedBy": { + "properties": { + "reasoning": { + "description": "Reasoning for error states", + "type": "string" + }, + "users": { + "description": "Users who created any object in the catalog", + "items": { + "$ref": "#/components/schemas/AnalyticsCatalogUser" + }, + "type": "array" + } + }, + "required": [ + "reasoning", + "users" + ], + "type": "object" + }, "AnalyticsCatalogTags": { "properties": { "tags": { @@ -437,6 +456,29 @@ ], "type": "object" }, + "AnalyticsCatalogUser": { + "description": "Users who created any object in the catalog", + "properties": { + "firstname": { + "description": "First name of the user who created any objects", + "type": "string" + }, + "lastname": { + "description": "Last name of the user who created any objects", + "type": "string" + }, + "userId": { + "description": "User ID of the user who created any objects", + "type": "string" + } + }, + "required": [ + "firstname", + "lastname", + "userId" + ], + "type": "object" + }, "AnomalyDetectionRequest": { "properties": { "sensitivity": { @@ -517,6 +559,28 @@ ], "type": "object" }, + "AttributeEqualityFilter": { + "description": "Attribute equality filter", + "properties": { + "labelIdentifier": { + "description": "The attribute label identifier to filter on", + "type": "string" + }, + "values": { + "description": "List of values to match (IN operation)", + "items": { + "description": "List of values to match (IN operation)", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "labelIdentifier", + "values" + ], + "type": "object" + }, "AttributeExecutionResultHeader": { "properties": { "attributeHeader": { @@ -805,6 +869,84 @@ ], "type": "object" }, + "ChangeAnalysisRequest": { + "description": "Request for change analysis computation", + "properties": { + "analyzedPeriod": { + "description": "The analyzed time period (e.g., '2025-02')", + "type": "string" + }, + "attributeLabelIdentifiers": { + "description": "Label identifiers of attributes to analyze for significant changes. If empty, valid attributes will be automatically discovered.", + "items": { + "description": "Label identifiers of attributes to analyze for significant changes. If empty, valid attributes will be automatically discovered.", + "type": "string" + }, + "type": "array" + }, + "dateAttributeIdentifier": { + "description": "The date attribute identifier to use for time period comparison", + "type": "string" + }, + "filters": { + "description": "Optional filters to apply.", + "items": { + "$ref": "#/components/schemas/AttributeEqualityFilter" + }, + "type": "array" + }, + "metricIdentifier": { + "description": "The metric identifier to analyze for changes", + "type": "string" + }, + "referencePeriod": { + "description": "The reference time period (e.g., '2025-01')", + "type": "string" + }, + "useSmartAttributeSelection": { + "default": false, + "description": "Whether to use smart attribute selection (LLM-based) instead of discovering all valid attributes. If true, GenAI will intelligently select the most relevant attributes for change analysis. If false or not set, all valid attributes will be discovered using Calcique. Smart attribute selection applies only when no attributes are provided.", + "type": "boolean" + } + }, + "required": [ + "analyzedPeriod", + "attributeLabelIdentifiers", + "dateAttributeIdentifier", + "filters", + "metricIdentifier", + "referencePeriod" + ], + "type": "object" + }, + "ChangeAnalysisResponse": { + "description": "Response for change analysis computation", + "properties": { + "links": { + "$ref": "#/components/schemas/ExecutionLinks" + } + }, + "required": [ + "links" + ], + "type": "object" + }, + "ChangeAnalysisResult": { + "description": "Result of a change analysis execution.", + "properties": { + "data": { + "description": "The change analysis result data containing significant changes.", + "items": { + "$ref": "#/components/schemas/MetricValueChange" + }, + "type": "array" + } + }, + "required": [ + "data" + ], + "type": "object" + }, "ChatHistoryInteraction": { "description": "List of chat history interactions.", "properties": { @@ -924,6 +1066,11 @@ }, "ChatRequest": { "properties": { + "includeHidden": { + "default": false, + "description": "If true, includes hidden objects in search and visualization building. If false (default), excludes objects where isHidden=true.", + "type": "boolean" + }, "limitCreate": { "default": 3, "description": "Maximum number of created results.", @@ -2111,6 +2258,7 @@ "GetQualityIssuesResponse": { "properties": { "issues": { + "description": "List of quality issues found in the workspace", "items": { "$ref": "#/components/schemas/QualityIssue" }, @@ -2537,6 +2685,65 @@ ], "type": "object" }, + "MetricValueChange": { + "description": "Individual change analysis data item", + "properties": { + "attributeName": { + "description": "The name of the attribute being analyzed", + "type": "string" + }, + "attributeValue": { + "description": "The value of the attribute being analyzed", + "type": "string" + }, + "attributeValuesChangeMean": { + "description": "The mean of attribute value changes for the attribute being analyzed", + "format": "double", + "type": "number" + }, + "attributeValuesChangeStd": { + "description": "The standard deviation of attribute value changes for the attribute being analyzed", + "format": "double", + "type": "number" + }, + "isSignificantChange": { + "description": "Whether the change is statistically significant", + "type": "boolean" + }, + "metricValueDelta": { + "description": "The delta between analyzed and reference periods", + "format": "double", + "type": "number" + }, + "metricValueDeltaAbs": { + "description": "The absolute delta between analyzed and reference periods", + "format": "double", + "type": "number" + }, + "metricValueInAnalyzedPeriod": { + "description": "The metric value in the analyzed period", + "format": "double", + "type": "number" + }, + "metricValueInReferencePeriod": { + "description": "The metric value in the reference period", + "format": "double", + "type": "number" + } + }, + "required": [ + "attributeName", + "attributeValue", + "attributeValuesChangeMean", + "attributeValuesChangeStd", + "isSignificantChange", + "metricValueDelta", + "metricValueDeltaAbs", + "metricValueInAnalyzedPeriod", + "metricValueInReferencePeriod" + ], + "type": "object" + }, "NegativeAttributeFilter": { "description": "Filter able to limit element values by label and related selected negated elements.", "properties": { @@ -2737,23 +2944,34 @@ "type": "object" }, "QualityIssue": { + "description": "List of quality issues (available when status is COMPLETED)", "properties": { "code": { + "description": "Quality issue code", + "example": "SIMILAR_NAMES", "type": "string" }, "detail": { "additionalProperties": { + "description": "Detailed information about the quality issue", "type": "object" }, + "description": "Detailed information about the quality issue", "type": "object" }, "objects": { + "description": "List of objects affected by this quality issue", "items": { "$ref": "#/components/schemas/QualityIssueObject" }, "type": "array" }, "severity": { + "description": "Severity level", + "enum": [ + "error", + "warning" + ], "type": "string" } }, @@ -2766,17 +2984,57 @@ "type": "object" }, "QualityIssueObject": { + "description": "List of objects affected by this quality issue", "properties": { "id": { + "description": "Object ID", + "example": "revenue", "type": "string" }, "type": { + "description": "Object type", + "example": "metric", + "type": "string" + }, + "workspaceId": { + "description": "Workspace ID where the object belongs", + "example": "demo", "type": "string" } }, "required": [ "id", - "type" + "type", + "workspaceId" + ], + "type": "object" + }, + "QualityIssuesCalculationStatusResponse": { + "properties": { + "error": { + "description": "Error message (available when status is FAILED or NOT_FOUND)", + "type": "string" + }, + "issues": { + "description": "List of quality issues (available when status is COMPLETED)", + "items": { + "$ref": "#/components/schemas/QualityIssue" + }, + "type": "array" + }, + "status": { + "description": "Current status of the calculation", + "enum": [ + "RUNNING", + "COMPLETED", + "FAILED", + "NOT_FOUND" + ], + "type": "string" + } + }, + "required": [ + "status" ], "type": "object" }, @@ -3623,6 +3881,28 @@ ], "type": "object" }, + "TriggerQualityIssuesCalculationResponse": { + "properties": { + "processId": { + "description": "Process ID for tracking the calculation status", + "type": "string" + }, + "status": { + "description": "Current status of the calculation", + "enum": [ + "RUNNING", + "COMPLETED", + "FAILED" + ], + "type": "string" + } + }, + "required": [ + "processId", + "status" + ], + "type": "object" + }, "UserContext": { "description": "User context, which can affect the behavior of the underlying AI features.", "properties": { @@ -3808,6 +4088,41 @@ ] } }, + "/api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/createdBy": { + "get": { + "description": "Returns a list of Users who created any object for this workspace", + "operationId": "createdBy", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnalyticsCatalogCreatedBy" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Analytics Catalog CreatedBy", + "tags": [ + "Smart Functions", + "actions" + ] + } + }, "/api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/tags": { "get": { "description": "Returns a list of tags for this workspace", @@ -4051,6 +4366,84 @@ ] } }, + "/api/v1/actions/workspaces/{workspaceId}/ai/issues/status/{processId}": { + "get": { + "description": "Returns the status of a quality issues calculation process identified by process ID.", + "operationId": "getQualityIssuesCalculationStatus", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + }, + { + "in": "path", + "name": "processId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityIssuesCalculationStatusResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Quality Issues Calculation Status", + "tags": [ + "Smart Functions", + "actions" + ] + } + }, + "/api/v1/actions/workspaces/{workspaceId}/ai/issues/triggerCheck": { + "post": { + "description": "Triggers asynchronous calculation of metadata quality issues and returns a process ID for status tracking.", + "operationId": "triggerQualityIssuesCalculation", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerQualityIssuesCalculationResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Trigger Quality Issues Calculation", + "tags": [ + "Smart Functions", + "actions" + ] + } + }, "/api/v1/actions/workspaces/{workspaceId}/ai/memory": { "get": { "description": "(EXPERIMENTAL) Returns a list of memory items", @@ -4899,6 +5292,96 @@ } } }, + "/api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis": { + "post": { + "description": "Computes change analysis for the provided execution definition.", + "operationId": "changeAnalysis", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeAnalysisRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeAnalysisResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Compute change analysis", + "tags": [ + "Computation", + "actions" + ] + } + }, + "/api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis/result/{resultId}": { + "get": { + "description": "Gets change analysis result.", + "operationId": "changeAnalysisResult", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + }, + { + "description": "Result ID", + "example": "a9b28f9dc55f37ea9f4a5fb0c76895923591e781", + "in": "path", + "name": "resultId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeAnalysisResult" + } + } + }, + "description": "OK" + } + }, + "summary": "Get change analysis result", + "tags": [ + "Computation", + "actions" + ] + } + }, "/api/v1/actions/workspaces/{workspaceId}/execution/computeKeyDrivers": { "post": { "description": "(EXPERIMENTAL) Computes key driver analysis for the provided execution definition.", diff --git a/schemas/gooddata-api-client.json b/schemas/gooddata-api-client.json index a3b5daabd..f162d0c0e 100644 --- a/schemas/gooddata-api-client.json +++ b/schemas/gooddata-api-client.json @@ -280,7 +280,6 @@ "properties": { "resultIdToCancelTokenPairs": { "additionalProperties": { - "description": "resultId to cancel token pairs", "type": "string" }, "description": "resultId to cancel token pairs", @@ -736,6 +735,26 @@ }, "type": "object" }, + "AnalyticsCatalogCreatedBy": { + "properties": { + "reasoning": { + "description": "Reasoning for error states", + "type": "string" + }, + "users": { + "description": "Users who created any object in the catalog", + "items": { + "$ref": "#/components/schemas/AnalyticsCatalogUser" + }, + "type": "array" + } + }, + "required": [ + "reasoning", + "users" + ], + "type": "object" + }, "AnalyticsCatalogTags": { "properties": { "tags": { @@ -751,6 +770,29 @@ ], "type": "object" }, + "AnalyticsCatalogUser": { + "description": "Users who created any object in the catalog", + "properties": { + "firstname": { + "description": "First name of the user who created any objects", + "type": "string" + }, + "lastname": { + "description": "Last name of the user who created any objects", + "type": "string" + }, + "userId": { + "description": "User ID of the user who created any objects", + "type": "string" + } + }, + "required": [ + "firstname", + "lastname", + "userId" + ], + "type": "object" + }, "AnomalyDetectionRequest": { "properties": { "sensitivity": { @@ -808,7 +850,6 @@ "ExtraCache", "Hipaa", "PdfExports", - "ManagedOIDC", "UiLocalization", "Tier", "UserCount", @@ -981,6 +1022,28 @@ ], "type": "object" }, + "AttributeEqualityFilter": { + "description": "Attribute equality filter", + "properties": { + "labelIdentifier": { + "description": "The attribute label identifier to filter on", + "type": "string" + }, + "values": { + "description": "List of values to match (IN operation)", + "items": { + "description": "List of values to match (IN operation)", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "labelIdentifier", + "values" + ], + "type": "object" + }, "AttributeExecutionResultHeader": { "properties": { "attributeHeader": { @@ -1323,6 +1386,7 @@ "type": "object" }, "AutomationMetadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -1503,6 +1567,84 @@ ], "type": "object" }, + "ChangeAnalysisRequest": { + "description": "Request for change analysis computation", + "properties": { + "analyzedPeriod": { + "description": "The analyzed time period (e.g., '2025-02')", + "type": "string" + }, + "attributeLabelIdentifiers": { + "description": "Label identifiers of attributes to analyze for significant changes. If empty, valid attributes will be automatically discovered.", + "items": { + "description": "Label identifiers of attributes to analyze for significant changes. If empty, valid attributes will be automatically discovered.", + "type": "string" + }, + "type": "array" + }, + "dateAttributeIdentifier": { + "description": "The date attribute identifier to use for time period comparison", + "type": "string" + }, + "filters": { + "description": "Optional filters to apply.", + "items": { + "$ref": "#/components/schemas/AttributeEqualityFilter" + }, + "type": "array" + }, + "metricIdentifier": { + "description": "The metric identifier to analyze for changes", + "type": "string" + }, + "referencePeriod": { + "description": "The reference time period (e.g., '2025-01')", + "type": "string" + }, + "useSmartAttributeSelection": { + "default": false, + "description": "Whether to use smart attribute selection (LLM-based) instead of discovering all valid attributes. If true, GenAI will intelligently select the most relevant attributes for change analysis. If false or not set, all valid attributes will be discovered using Calcique. Smart attribute selection applies only when no attributes are provided.", + "type": "boolean" + } + }, + "required": [ + "analyzedPeriod", + "attributeLabelIdentifiers", + "dateAttributeIdentifier", + "filters", + "metricIdentifier", + "referencePeriod" + ], + "type": "object" + }, + "ChangeAnalysisResponse": { + "description": "Response for change analysis computation", + "properties": { + "links": { + "$ref": "#/components/schemas/ExecutionLinks" + } + }, + "required": [ + "links" + ], + "type": "object" + }, + "ChangeAnalysisResult": { + "description": "Result of a change analysis execution.", + "properties": { + "data": { + "description": "The change analysis result data containing significant changes.", + "items": { + "$ref": "#/components/schemas/MetricValueChange" + }, + "type": "array" + } + }, + "required": [ + "data" + ], + "type": "object" + }, "ChatHistoryInteraction": { "description": "List of chat history interactions.", "properties": { @@ -1622,6 +1764,11 @@ }, "ChatRequest": { "properties": { + "includeHidden": { + "default": false, + "description": "If true, includes hidden objects in search and visualization building. If false (default), excludes objects where isHidden=true.", + "type": "boolean" + }, "limitCreate": { "default": 3, "description": "Maximum number of created results.", @@ -3641,6 +3788,12 @@ "example": "INT", "type": "string" }, + "description": { + "description": "Column description/comment from database", + "example": "Customer unique identifier", + "maxLength": 255, + "type": "string" + }, "isPrimaryKey": { "description": "Is column part of primary key?", "type": "boolean" @@ -4495,8 +4648,6 @@ "properties": { "customClaimMapping": { "additionalProperties": { - "description": "Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.", - "maxLength": 10000, "type": "string" }, "description": "Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.", @@ -4774,6 +4925,11 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "isHidden": { + "description": "If true, this metric is hidden from AI search results.", + "example": false, + "type": "boolean" + }, "modifiedAt": { "description": "Time of the last entity modification.", "example": "[\"2023-07-20 12:30\"]", @@ -5077,52 +5233,6 @@ "maxLength": 255, "type": "string" }, - "oauthClientId": { - "description": "Identifier of the authentication provider", - "maxLength": 255, - "type": "string" - }, - "oauthClientSecret": { - "description": "Communication secret of the authentication provider (never returned back).", - "maxLength": 255, - "type": "string" - }, - "oauthCustomAuthAttributes": { - "additionalProperties": { - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "string" - }, - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "object" - }, - "oauthCustomScopes": { - "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", - "items": { - "maxLength": 255, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, - "oauthIssuerLocation": { - "description": "URI of the authentication provider.", - "maxLength": 255, - "type": "string" - }, - "oauthSubjectIdClaim": { - "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", - "example": "oid", - "maxLength": 255, - "type": "string" - }, "permissions": { "items": { "$ref": "#/components/schemas/DeclarativeOrganizationPermission" @@ -5363,12 +5473,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "example": "TIMEZONE", @@ -6702,7 +6814,6 @@ "ExtraCache", "Hipaa", "PdfExports", - "ManagedOIDC", "UiLocalization", "Tier", "UserCount", @@ -7128,25 +7239,16 @@ "YES", "NO" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "id": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "notes": { "$ref": "#/components/schemas/Notes" }, "original": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "otherAttributes": { "additionalProperties": { @@ -7158,11 +7260,7 @@ "$ref": "#/components/schemas/Skeleton" }, "space": { - "type": "string", - "xml": { - "attribute": true, - "namespace": "http://www.w3.org/XML/1998/namespace" - } + "type": "string" }, "srcDir": { "enum": [ @@ -7170,20 +7268,14 @@ "RTL", "AUTO" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "translate": { "enum": [ "YES", "NO" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "trgDir": { "enum": [ @@ -7191,10 +7283,7 @@ "RTL", "AUTO" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "unitOrGroup": { "items": { @@ -7203,11 +7292,7 @@ "type": "array" } }, - "type": "object", - "xml": { - "name": "file", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" }, "Filter": { "description": "List of filters to be applied to the new visualization", @@ -7418,6 +7503,11 @@ "example": "all", "type": "string" }, + "dateReferencePrefix": { + "description": "Columns starting with this prefix will be considered as references to date dataset. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `d` and separator is `__`, the columns with name like `d__date` will be considered as reference to date dataset. There can be also second separator and granularity suffix, e.g. `d__date__day` to create attribute reference to exact date dataset and granularity.", + "example": "d", + "type": "string" + }, "denormPrefix": { "description": "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.", "example": "dr", @@ -7503,6 +7593,7 @@ "GetQualityIssuesResponse": { "properties": { "issues": { + "description": "List of quality issues found in the workspace", "items": { "$ref": "#/components/schemas/QualityIssue" }, @@ -9599,6 +9690,7 @@ "type": "array" }, "metadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -9923,6 +10015,7 @@ "type": "array" }, "metadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -10365,6 +10458,7 @@ "type": "array" }, "metadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -17424,47 +17518,6 @@ "maxLength": 255, "nullable": true, "type": "string" - }, - "oauthClientId": { - "maxLength": 255, - "type": "string" - }, - "oauthClientSecret": { - "maxLength": 255, - "type": "string" - }, - "oauthCustomAuthAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "object" - }, - "oauthCustomScopes": { - "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", - "items": { - "maxLength": 255, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, - "oauthIssuerLocation": { - "maxLength": 255, - "type": "string" - }, - "oauthSubjectIdClaim": { - "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", - "example": "oid", - "maxLength": 255, - "type": "string" } }, "type": "object" @@ -17569,43 +17622,6 @@ "maxLength": 255, "nullable": true, "type": "string" - }, - "oauthClientId": { - "maxLength": 255, - "type": "string" - }, - "oauthCustomAuthAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "object" - }, - "oauthCustomScopes": { - "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", - "items": { - "maxLength": 255, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, - "oauthIssuerLocation": { - "maxLength": 255, - "type": "string" - }, - "oauthSubjectIdClaim": { - "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", - "example": "oid", - "maxLength": 255, - "type": "string" } }, "type": "object" @@ -17755,47 +17771,6 @@ "maxLength": 255, "nullable": true, "type": "string" - }, - "oauthClientId": { - "maxLength": 255, - "type": "string" - }, - "oauthClientSecret": { - "maxLength": 255, - "type": "string" - }, - "oauthCustomAuthAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "object" - }, - "oauthCustomScopes": { - "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", - "items": { - "maxLength": 255, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, - "oauthIssuerLocation": { - "maxLength": 255, - "type": "string" - }, - "oauthSubjectIdClaim": { - "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", - "example": "oid", - "maxLength": 255, - "type": "string" } }, "type": "object" @@ -17883,12 +17858,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -17963,12 +17940,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -18083,12 +18062,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -19569,12 +19550,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -19649,12 +19632,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -20352,6 +20337,7 @@ "type": "array" }, "metadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -21831,12 +21817,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -21911,12 +21899,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -22057,12 +22047,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -22137,12 +22129,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -22665,6 +22659,65 @@ ], "type": "object" }, + "MetricValueChange": { + "description": "Individual change analysis data item", + "properties": { + "attributeName": { + "description": "The name of the attribute being analyzed", + "type": "string" + }, + "attributeValue": { + "description": "The value of the attribute being analyzed", + "type": "string" + }, + "attributeValuesChangeMean": { + "description": "The mean of attribute value changes for the attribute being analyzed", + "format": "double", + "type": "number" + }, + "attributeValuesChangeStd": { + "description": "The standard deviation of attribute value changes for the attribute being analyzed", + "format": "double", + "type": "number" + }, + "isSignificantChange": { + "description": "Whether the change is statistically significant", + "type": "boolean" + }, + "metricValueDelta": { + "description": "The delta between analyzed and reference periods", + "format": "double", + "type": "number" + }, + "metricValueDeltaAbs": { + "description": "The absolute delta between analyzed and reference periods", + "format": "double", + "type": "number" + }, + "metricValueInAnalyzedPeriod": { + "description": "The metric value in the analyzed period", + "format": "double", + "type": "number" + }, + "metricValueInReferencePeriod": { + "description": "The metric value in the reference period", + "format": "double", + "type": "number" + } + }, + "required": [ + "attributeName", + "attributeValue", + "attributeValuesChangeMean", + "attributeValuesChangeStd", + "isSignificantChange", + "metricValueDelta", + "metricValueDeltaAbs", + "metricValueInAnalyzedPeriod", + "metricValueInReferencePeriod" + ], + "type": "object" + }, "NegativeAttributeFilter": { "description": "Filter able to limit element values by label and related selected negated elements.", "properties": { @@ -22702,25 +22755,16 @@ "SOURCE", "TARGET" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "category": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "content": { "type": "string" }, "id": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "otherAttributes": { "additionalProperties": { @@ -22730,17 +22774,10 @@ }, "priority": { "format": "int32", - "type": "integer", - "xml": { - "attribute": true - } + "type": "integer" } }, - "type": "object", - "xml": { - "name": "note", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" }, "Notes": { "properties": { @@ -22751,14 +22788,7 @@ "type": "array" } }, - "required": [ - "note" - ], - "type": "object", - "xml": { - "name": "notes", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" }, "Notification": { "properties": { @@ -23405,23 +23435,34 @@ "type": "object" }, "QualityIssue": { + "description": "List of quality issues (available when status is COMPLETED)", "properties": { "code": { + "description": "Quality issue code", + "example": "SIMILAR_NAMES", "type": "string" }, "detail": { "additionalProperties": { + "description": "Detailed information about the quality issue", "type": "object" }, + "description": "Detailed information about the quality issue", "type": "object" }, "objects": { + "description": "List of objects affected by this quality issue", "items": { "$ref": "#/components/schemas/QualityIssueObject" }, "type": "array" }, "severity": { + "description": "Severity level", + "enum": [ + "error", + "warning" + ], "type": "string" } }, @@ -23434,17 +23475,57 @@ "type": "object" }, "QualityIssueObject": { + "description": "List of objects affected by this quality issue", "properties": { "id": { + "description": "Object ID", + "example": "revenue", "type": "string" }, "type": { + "description": "Object type", + "example": "metric", + "type": "string" + }, + "workspaceId": { + "description": "Workspace ID where the object belongs", + "example": "demo", "type": "string" } }, "required": [ "id", - "type" + "type", + "workspaceId" + ], + "type": "object" + }, + "QualityIssuesCalculationStatusResponse": { + "properties": { + "error": { + "description": "Error message (available when status is FAILED or NOT_FOUND)", + "type": "string" + }, + "issues": { + "description": "List of quality issues (available when status is COMPLETED)", + "items": { + "$ref": "#/components/schemas/QualityIssue" + }, + "type": "array" + }, + "status": { + "description": "Current status of the calculation", + "enum": [ + "RUNNING", + "COMPLETED", + "FAILED", + "NOT_FOUND" + ], + "type": "string" + } + }, + "required": [ + "status" ], "type": "object" }, @@ -24000,12 +24081,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "example": "TIMEZONE", @@ -24154,9 +24237,6 @@ "type": "string" }, "kid": { - "maxLength": 255, - "minLength": 0, - "pattern": "^[^.]", "type": "string" }, "kty": { @@ -24723,17 +24803,10 @@ "type": "array" }, "href": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" } }, - "type": "object", - "xml": { - "name": "skeleton", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" }, "SlidesExportRequest": { "description": "Export request object describing the export properties and metadata for slides exports.", @@ -25038,6 +25111,11 @@ "example": "INT", "type": "string" }, + "description": { + "description": "Column description/comment from database", + "example": "Customer unique identifier", + "type": "string" + }, "name": { "description": "Column name", "example": "customer_id", @@ -25567,6 +25645,28 @@ ], "type": "object" }, + "TriggerQualityIssuesCalculationResponse": { + "properties": { + "processId": { + "description": "Process ID for tracking the calculation status", + "type": "string" + }, + "status": { + "description": "Current status of the calculation", + "enum": [ + "RUNNING", + "COMPLETED", + "FAILED" + ], + "type": "string" + } + }, + "required": [ + "processId", + "status" + ], + "type": "object" + }, "UserAssignee": { "description": "List of users", "properties": { @@ -26548,39 +26648,19 @@ "type": "object" }, "space": { - "type": "string", - "xml": { - "attribute": true, - "namespace": "http://www.w3.org/XML/1998/namespace" - } + "type": "string" }, "srcLang": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "trgLang": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "version": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" } }, - "required": [ - "file" - ], - "type": "object", - "xml": { - "name": "xliff", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" } } }, @@ -28287,6 +28367,41 @@ ] } }, + "/api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/createdBy": { + "get": { + "description": "Returns a list of Users who created any object for this workspace", + "operationId": "createdBy", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnalyticsCatalogCreatedBy" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Analytics Catalog CreatedBy", + "tags": [ + "Smart Functions", + "actions" + ] + } + }, "/api/v1/actions/workspaces/{workspaceId}/ai/analyticsCatalog/tags": { "get": { "description": "Returns a list of tags for this workspace", @@ -28530,6 +28645,84 @@ ] } }, + "/api/v1/actions/workspaces/{workspaceId}/ai/issues/status/{processId}": { + "get": { + "description": "Returns the status of a quality issues calculation process identified by process ID.", + "operationId": "getQualityIssuesCalculationStatus", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + }, + { + "in": "path", + "name": "processId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QualityIssuesCalculationStatusResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Quality Issues Calculation Status", + "tags": [ + "Smart Functions", + "actions" + ] + } + }, + "/api/v1/actions/workspaces/{workspaceId}/ai/issues/triggerCheck": { + "post": { + "description": "Triggers asynchronous calculation of metadata quality issues and returns a process ID for status tracking.", + "operationId": "triggerQualityIssuesCalculation", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerQualityIssuesCalculationResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Trigger Quality Issues Calculation", + "tags": [ + "Smart Functions", + "actions" + ] + } + }, "/api/v1/actions/workspaces/{workspaceId}/ai/memory": { "get": { "description": "(EXPERIMENTAL) Returns a list of memory items", @@ -29977,6 +30170,96 @@ } } }, + "/api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis": { + "post": { + "description": "Computes change analysis for the provided execution definition.", + "operationId": "changeAnalysis", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeAnalysisRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeAnalysisResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Compute change analysis", + "tags": [ + "Computation", + "actions" + ] + } + }, + "/api/v1/actions/workspaces/{workspaceId}/execution/computeChangeAnalysis/result/{resultId}": { + "get": { + "description": "Gets change analysis result.", + "operationId": "changeAnalysisResult", + "parameters": [ + { + "description": "Workspace identifier", + "in": "path", + "name": "workspaceId", + "required": true, + "schema": { + "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", + "type": "string" + } + }, + { + "description": "Result ID", + "example": "a9b28f9dc55f37ea9f4a5fb0c76895923591e781", + "in": "path", + "name": "resultId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeAnalysisResult" + } + } + }, + "description": "OK" + } + }, + "summary": "Get change analysis result", + "tags": [ + "Computation", + "actions" + ] + } + }, "/api/v1/actions/workspaces/{workspaceId}/execution/computeKeyDrivers": { "post": { "description": "(EXPERIMENTAL) Computes key driver analysis for the provided execution definition.", diff --git a/schemas/gooddata-automation-client.json b/schemas/gooddata-automation-client.json index 1e73022d2..8e233e4f7 100644 --- a/schemas/gooddata-automation-client.json +++ b/schemas/gooddata-automation-client.json @@ -803,6 +803,7 @@ "type": "object" }, "AutomationMetadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, diff --git a/schemas/gooddata-metadata-client.json b/schemas/gooddata-metadata-client.json index 0a781daa1..f5b1941c6 100644 --- a/schemas/gooddata-metadata-client.json +++ b/schemas/gooddata-metadata-client.json @@ -400,7 +400,6 @@ "ExtraCache", "Hipaa", "PdfExports", - "ManagedOIDC", "UiLocalization", "Tier", "UserCount", @@ -730,6 +729,7 @@ "type": "object" }, "AutomationMetadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -2277,6 +2277,12 @@ "example": "INT", "type": "string" }, + "description": { + "description": "Column description/comment from database", + "example": "Customer unique identifier", + "maxLength": 255, + "type": "string" + }, "isPrimaryKey": { "description": "Is column part of primary key?", "type": "boolean" @@ -3132,8 +3138,6 @@ "properties": { "customClaimMapping": { "additionalProperties": { - "description": "Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.", - "maxLength": 10000, "type": "string" }, "description": "Map of custom claim overrides. To be used when your Idp does not provide default claims (sub, email, name, given_name, family_name, urn.gooddata.user_groups [optional]). Define the key pair for the claim you wish to override, where the key is the default name of the attribute and the value is your custom name for the given attribute.", @@ -3411,6 +3415,11 @@ "pattern": "^(?!\\.)[.A-Za-z0-9_-]{1,255}$", "type": "string" }, + "isHidden": { + "description": "If true, this metric is hidden from AI search results.", + "example": false, + "type": "boolean" + }, "modifiedAt": { "description": "Time of the last entity modification.", "example": "[\"2023-07-20 12:30\"]", @@ -3714,52 +3723,6 @@ "maxLength": 255, "type": "string" }, - "oauthClientId": { - "description": "Identifier of the authentication provider", - "maxLength": 255, - "type": "string" - }, - "oauthClientSecret": { - "description": "Communication secret of the authentication provider (never returned back).", - "maxLength": 255, - "type": "string" - }, - "oauthCustomAuthAttributes": { - "additionalProperties": { - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "string" - }, - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "object" - }, - "oauthCustomScopes": { - "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", - "items": { - "maxLength": 255, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, - "oauthIssuerLocation": { - "description": "URI of the authentication provider.", - "maxLength": 255, - "type": "string" - }, - "oauthSubjectIdClaim": { - "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", - "example": "oid", - "maxLength": 255, - "type": "string" - }, "permissions": { "items": { "$ref": "#/components/schemas/DeclarativeOrganizationPermission" @@ -4000,12 +3963,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "example": "TIMEZONE", @@ -5017,7 +4982,6 @@ "ExtraCache", "Hipaa", "PdfExports", - "ManagedOIDC", "UiLocalization", "Tier", "UserCount", @@ -5156,25 +5120,16 @@ "YES", "NO" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "id": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "notes": { "$ref": "#/components/schemas/Notes" }, "original": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "otherAttributes": { "additionalProperties": { @@ -5186,11 +5141,7 @@ "$ref": "#/components/schemas/Skeleton" }, "space": { - "type": "string", - "xml": { - "attribute": true, - "namespace": "http://www.w3.org/XML/1998/namespace" - } + "type": "string" }, "srcDir": { "enum": [ @@ -5198,20 +5149,14 @@ "RTL", "AUTO" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "translate": { "enum": [ "YES", "NO" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "trgDir": { "enum": [ @@ -5219,10 +5164,7 @@ "RTL", "AUTO" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "unitOrGroup": { "items": { @@ -5231,11 +5173,7 @@ "type": "array" } }, - "type": "object", - "xml": { - "name": "file", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" }, "FilterDefinition": { "description": "Abstract filter definition type", @@ -5292,6 +5230,11 @@ "example": "all", "type": "string" }, + "dateReferencePrefix": { + "description": "Columns starting with this prefix will be considered as references to date dataset. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `d` and separator is `__`, the columns with name like `d__date` will be considered as reference to date dataset. There can be also second separator and granularity suffix, e.g. `d__date__day` to create attribute reference to exact date dataset and granularity.", + "example": "d", + "type": "string" + }, "denormPrefix": { "description": "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.", "example": "dr", @@ -7386,6 +7329,7 @@ "type": "array" }, "metadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -7710,6 +7654,7 @@ "type": "array" }, "metadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -8152,6 +8097,7 @@ "type": "array" }, "metadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -15211,47 +15157,6 @@ "maxLength": 255, "nullable": true, "type": "string" - }, - "oauthClientId": { - "maxLength": 255, - "type": "string" - }, - "oauthClientSecret": { - "maxLength": 255, - "type": "string" - }, - "oauthCustomAuthAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "object" - }, - "oauthCustomScopes": { - "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", - "items": { - "maxLength": 255, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, - "oauthIssuerLocation": { - "maxLength": 255, - "type": "string" - }, - "oauthSubjectIdClaim": { - "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", - "example": "oid", - "maxLength": 255, - "type": "string" } }, "type": "object" @@ -15356,43 +15261,6 @@ "maxLength": 255, "nullable": true, "type": "string" - }, - "oauthClientId": { - "maxLength": 255, - "type": "string" - }, - "oauthCustomAuthAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "object" - }, - "oauthCustomScopes": { - "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", - "items": { - "maxLength": 255, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, - "oauthIssuerLocation": { - "maxLength": 255, - "type": "string" - }, - "oauthSubjectIdClaim": { - "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", - "example": "oid", - "maxLength": 255, - "type": "string" } }, "type": "object" @@ -15542,47 +15410,6 @@ "maxLength": 255, "nullable": true, "type": "string" - }, - "oauthClientId": { - "maxLength": 255, - "type": "string" - }, - "oauthClientSecret": { - "maxLength": 255, - "type": "string" - }, - "oauthCustomAuthAttributes": { - "additionalProperties": { - "type": "string" - }, - "description": "Map of additional authentication attributes that should be added to the OAuth2 authentication requests, where the key is the name of the attribute and the value is the value of the attribute.", - "maxLength": 10000, - "type": "object" - }, - "oauthCustomScopes": { - "description": "List of additional OAuth scopes which may be required by other providers (e.g. Snowflake)", - "items": { - "maxLength": 255, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "oauthIssuerId": { - "description": "Any string identifying the OIDC provider. This value is used as suffix for OAuth2 callback (redirect) URL. If not defined, the standard callback URL is used. This value is valid only for external OIDC providers, not for the internal DEX provider.", - "example": "myOidcProvider", - "maxLength": 255, - "type": "string" - }, - "oauthIssuerLocation": { - "maxLength": 255, - "type": "string" - }, - "oauthSubjectIdClaim": { - "description": "Any string identifying the claim in ID token, that should be used for user identification. The default value is 'sub'.", - "example": "oid", - "maxLength": 255, - "type": "string" } }, "type": "object" @@ -15670,12 +15497,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -15750,12 +15579,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -15870,12 +15701,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -17356,12 +17189,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -17436,12 +17271,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -18139,6 +17976,7 @@ "type": "array" }, "metadata": { + "additionalProperties": true, "description": "Additional information for the automation.", "maxLength": 250000, "nullable": true, @@ -19618,12 +19456,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -19698,12 +19538,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -19844,12 +19686,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -19924,12 +19768,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "type": "string" @@ -20152,25 +19998,16 @@ "SOURCE", "TARGET" ], - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "category": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "content": { "type": "string" }, "id": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "otherAttributes": { "additionalProperties": { @@ -20180,17 +20017,10 @@ }, "priority": { "format": "int32", - "type": "integer", - "xml": { - "attribute": true - } + "type": "integer" } }, - "type": "object", - "xml": { - "name": "note", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" }, "Notes": { "properties": { @@ -20201,14 +20031,7 @@ "type": "array" } }, - "required": [ - "note" - ], - "type": "object", - "xml": { - "name": "notes", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" }, "NotificationChannelDestination": { "oneOf": [ @@ -21193,12 +21016,14 @@ "JWT_JIT_PROVISIONING", "DASHBOARD_FILTERS_APPLY_MODE", "ENABLE_SLIDES_EXPORT", + "ENABLE_SNAPSHOT_EXPORT", "AI_RATE_LIMIT", "ATTACHMENT_SIZE_LIMIT", "ATTACHMENT_LINK_TTL", "AD_CATALOG_GROUPS_DEFAULT_EXPAND_STATE", "ALLOW_UNSAFE_FLEX_CONNECT_ENDPOINTS", "ENABLE_AUTOMATION_EVALUATION_MODE", + "ENABLE_ACCESSIBILITY_MODE", "REGISTERED_PLUGGABLE_APPLICATIONS" ], "example": "TIMEZONE", @@ -21224,9 +21049,6 @@ "type": "string" }, "kid": { - "maxLength": 255, - "minLength": 0, - "pattern": "^[^.]", "type": "string" }, "kty": { @@ -21456,17 +21278,10 @@ "type": "array" }, "href": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" } }, - "type": "object", - "xml": { - "name": "skeleton", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" }, "SlidesExportRequest": { "description": "Export request object describing the export properties and metadata for slides exports.", @@ -22421,39 +22236,19 @@ "type": "object" }, "space": { - "type": "string", - "xml": { - "attribute": true, - "namespace": "http://www.w3.org/XML/1998/namespace" - } + "type": "string" }, "srcLang": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "trgLang": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" }, "version": { - "type": "string", - "xml": { - "attribute": true - } + "type": "string" } }, - "required": [ - "file" - ], - "type": "object", - "xml": { - "name": "xliff", - "namespace": "urn:oasis:names:tc:xliff:document:2.0" - } + "type": "object" } } }, diff --git a/schemas/gooddata-scan-client.json b/schemas/gooddata-scan-client.json index 746c4146f..50625fe33 100644 --- a/schemas/gooddata-scan-client.json +++ b/schemas/gooddata-scan-client.json @@ -184,6 +184,12 @@ "example": "INT", "type": "string" }, + "description": { + "description": "Column description/comment from database", + "example": "Customer unique identifier", + "maxLength": 255, + "type": "string" + }, "isPrimaryKey": { "description": "Is column part of primary key?", "type": "boolean" @@ -490,6 +496,11 @@ "example": "INT", "type": "string" }, + "description": { + "description": "Column description/comment from database", + "example": "Customer unique identifier", + "type": "string" + }, "name": { "description": "Column name", "example": "customer_id",