From 8c83bf75783da9c9f5c0a42980a644680a161e44 Mon Sep 17 00:00:00 2001 From: Cedrick Lunven Date: Fri, 9 Oct 2026 16:48:05 +0200 Subject: [PATCH] fix: DatabaseStatusType falls back to OTHER for unknown API statuses Add a @JsonCreator factory method so that any status value returned by the DevOps API that is not yet present in the enum is safely mapped to OTHER instead of throwing an IllegalArgumentException during JSON deserialization. --- .../sdk/db/domain/DatabaseStatusType.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/astra-sdk-devops/src/main/java/com/dtsx/astra/sdk/db/domain/DatabaseStatusType.java b/astra-sdk-devops/src/main/java/com/dtsx/astra/sdk/db/domain/DatabaseStatusType.java index 42aff044..caf41a14 100644 --- a/astra-sdk-devops/src/main/java/com/dtsx/astra/sdk/db/domain/DatabaseStatusType.java +++ b/astra-sdk-devops/src/main/java/com/dtsx/astra/sdk/db/domain/DatabaseStatusType.java @@ -17,6 +17,8 @@ package com.dtsx.astra.sdk.db.domain; +import com.fasterxml.jackson.annotation.JsonCreator; + /** * Encoded all values for 'tier' * @@ -58,6 +60,10 @@ public enum DatabaseStatusType { /** status. */ RESUMING, /** status. */ + SUSPENDED, + /** status. */ + SUSPENDING, + /** status. */ TERMINATED, /** status. */ TERMINATING, @@ -66,5 +72,25 @@ public enum DatabaseStatusType { /** status. */ UNPARKING, /** status. */ - SYNCHRONIZING; + SYNCHRONIZING, + /** status. */ + OTHER; + + /** + * Deserialize a status value, falling back to {@link #OTHER} for any + * value not yet known to this SDK so that new DevOps API statuses do + * not cause deserialization failures. + * + * @param value raw string from the API response + * @return matching constant, or {@link #OTHER} when unrecognized + */ + @JsonCreator + public static DatabaseStatusType fromValue(String value) { + if (value == null) return OTHER; + try { + return DatabaseStatusType.valueOf(value); + } catch (IllegalArgumentException e) { + return OTHER; + } + } }