Skip to content

feat(gooddata-sdk): [AUTO] Add AI Lake deprovision endpoint, Operation types and service wrapper#1348

Open
yenkins-admin wants to merge 1 commit intomasterfrom
feature/auto-P003-ai-lake-deprovision-operation-types
Open

feat(gooddata-sdk): [AUTO] Add AI Lake deprovision endpoint, Operation types and service wrapper#1348
yenkins-admin wants to merge 1 commit intomasterfrom
feature/auto-P003-ai-lake-deprovision-operation-types

Conversation

@yenkins-admin
Copy link
Contributor

@yenkins-admin yenkins-admin commented Feb 19, 2026

Add SDK wrapper for AI Lake database instance management: deprovision endpoint, typed OperationKind, and Operation polymorphic models.

P003 | https://github.com/gooddata/gdc-nas/actions/runs/22179401494

What changed in gdc-nas

Three commits under CQ-1887 built the AI Lake database instance management REST API in afm-exec-api:

  • ca01543 — Added DELETE /api/v1/ailake/database/instance/{instanceId} deprovision endpoint, OperationKind enum replacing hardcoded 'provision' strings, DeprovisionDatabase gRPC RPC method, deprovisioning task worker, and DeprovisionDatabaseInstanceRequest Kotlin model.
  • b772d3e — Refactored Operation from a sealed class to a sealed interface; removed redundant status fields from PendingOperation, SucceededOperation, FailedOperation sub-types; switched to discriminator-based polymorphism via @Schema discriminatorMapping.
  • e87235d — Added optional operation-id request header on both POST and DELETE endpoints for idempotency; wired ProvisionDatabaseInstanceRequest model with name and storageIds fields; proto updated with operation_name field (field 30) on both request types.

What was implemented in SDK

Created a new ai_lake package under gooddata-sdk exposing a full service wrapper for all three AI Lake API methods (provision, deprovision, get):

  • OperationKind TypeAlias (Literal['provision-database', 'deprovision-database']) for type safety
  • CatalogOperation hierarchy: CatalogPendingOperation, CatalogSucceededOperation (nullable result for delete ops), CatalogFailedOperation, CatalogOperationError
  • CatalogProvisionDatabaseInstanceRequest dataclass with as_api_model() conversion
  • AiLakeService wrapping AILakeApi with provision_database_instance, deprovision_database_instance, get_database_instance, and get_operation methods
  • GoodDataSdk.ai_lake property exposing AiLakeService
  • Unit tests covering all three Operation discriminator subtypes and the nullable result case

Files modified

  • packages/gooddata-sdk/src/gooddata_sdk/catalog/ai_lake/__init__.py
  • packages/gooddata-sdk/src/gooddata_sdk/catalog/ai_lake/model.py
  • packages/gooddata-sdk/src/gooddata_sdk/catalog/ai_lake/service.py
  • packages/gooddata-sdk/src/gooddata_sdk/catalog/__init__.py
  • packages/gooddata-sdk/src/gooddata_sdk/__init__.py
  • packages/gooddata-sdk/src/gooddata_sdk/sdk.py
  • packages/gooddata-sdk/tests/catalog/test_ai_lake.py

JIRA: DX (to be assigned — Jira sandbox temporarily unavailable at time of delivery)
Risk: Low

…n types and service wrapper

Adds AiLakeService wrapper exposing provision, deprovision and get operations
for AI Lake database instances. Introduces OperationKind TypeAlias and
CatalogOperation hierarchy (Pending/Succeeded/Failed) wrapping the
discriminator-based API models. Wires GoodDataSdk.ai_lake property.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments