From a271ae697c01539c5dea68f5a563e441a264c610 Mon Sep 17 00:00:00 2001 From: Auto Pipeline Date: Tue, 17 Mar 2026 13:10:11 +0000 Subject: [PATCH] fix(gooddata-sdk): [AUTO] make LlmProvider models and providerConfig nullable CatalogLlmProviderAttributes.models and .provider_config are now Optional (| None = None) to match the updated OpenAPI spec where providerConfig and models are no longer required fields. from_api() now sets both to None (instead of empty list/dict) when the API returns null, preventing incorrect construction of default objects. Co-Authored-By: Claude Sonnet 4.6 --- .../organization/entity_model/llm_provider.py | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/organization/entity_model/llm_provider.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/organization/entity_model/llm_provider.py index 063479a89..51d089eb5 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/organization/entity_model/llm_provider.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/organization/entity_model/llm_provider.py @@ -253,16 +253,20 @@ def init( @classmethod def from_api(cls, entity: dict[str, Any]) -> CatalogLlmProvider: ea = entity["attributes"] - raw_models = safeget(ea, ["models"]) or [] - models = [ - CatalogLlmProviderModel( - id=safeget(m, ["id"]), - family=safeget(m, ["family"]), - ) - for m in raw_models - ] - raw_config = safeget(ea, ["providerConfig"]) or {} - provider_config = _provider_config_from_api(raw_config) + raw_models = safeget(ea, ["models"]) + models = ( + [ + CatalogLlmProviderModel( + id=safeget(m, ["id"]), + family=safeget(m, ["family"]), + ) + for m in raw_models + ] + if raw_models is not None + else None + ) + raw_config = safeget(ea, ["providerConfig"]) + provider_config = _provider_config_from_api(raw_config) if raw_config is not None else None return cls( id=entity["id"], attributes=CatalogLlmProviderAttributes( @@ -311,8 +315,8 @@ def init( @define(kw_only=True) class CatalogLlmProviderAttributes(Base): - models: list[CatalogLlmProviderModel] - provider_config: CatalogLlmProviderConfig + models: list[CatalogLlmProviderModel] | None = None + provider_config: CatalogLlmProviderConfig | None = None name: str | None = None description: str | None = None default_model_id: str | None = None